24.1 Gli operatori per la fase di assemblaggio
24.1.1 Operatori aritmetici
24.1.2 Operatori logici
24.1.3 Operatori di scorrimento dei bit
24.1.4 Operatori relazionali
24.1.5 Ordine di precedenza degli operatori
24.2 Gli operatori per la fase di esecuzione
24.3 Le direttive
24.3.1 Le direttive condizionali per la fase di assemblaggio
24.3.2 Le direttive condizionali per la fase di esecuzione
24.3.3 La direttiva LABEL
24.4 Le macro
24.4.1 La direttiva EQU
24.4.2 La direttiva MACRO
24.4.3 Le macro predefinite di MASM
24.5 Analogie tra macro e sottoprogrammi
25.1 Analogie tra sottoprogrammi e funzioni matematiche
25.2 La struttura generale di una procedura Assembly
25.3 Procedure e trasferimento del controllo
25.3.1 Indirizzo in memoria di una procedura
25.3.2 Chiamata diretta intrasegmento
25.3.3 Chiamata indiretta intrasegmento
25.3.4 Chiamata diretta intersegmento
25.3.5 Chiamata indiretta intersegmento
25.4 Considerazioni generali sulle procedure
25.5 Passaggio di argomenti alle procedure
25.5.1 Passaggio degli argomenti per valore e per indirizzo
25.5.2 Convenzione C per il passaggio di argomenti ai sottoprogrammi
25.5.3 Convenzione Pascal per il passaggio di argomenti ai sottoprogrammi
25.6 Convenzioni per le variabili locali dei sottoprogrammi
25.7 Gestione degli argomenti e delle variabili locali con EQU
25.8 L'indirizzo di una variabile locale
25.9 Convenzioni per i valori di ritorno dei sottoprogrammi
25.10 Programmi Assembly vecchio stile
25.11 Esercitazioni consigliate
26.1 La ricorsione nei linguaggi di programmazione
26.2 La ricorsione in Assembly
26.3 Vantaggi e svantaggi delle procedure ricorsive
26.4 Le Torri di Hanoi
27.1 Convenzioni DOS per i programmi eseguibili
27.1.1 Convenzioni DOS per il formato EXE
27.1.2 Convenzioni DOS per il formato COM
27.2 Il modello di memoria TINY
27.2.1 Programma TINY in formato EXE
27.2.2 Programma TINY in formato COM
27.3 Il modello di memoria SMALL
27.4 Il modello di memoria MEDIUM
27.5 Il modello di memoria COMPACT
27.6 Il modello di memoria LARGE
27.7 Il modello di memoria HUGE
27.8 La direttiva GROUP
28.1 Programmi Assembly contenuti in un unico file
28.1.1 Eseguibili in formato COM
28.2 Programmi Assembly distribuiti su due o più file
28.2.1 Le direttive EXTRN e PUBLIC
28.2.2 Assembling di TESTMAIN.ASM e TESTLIB1.ASM
28.2.3 Linking di TESTMAIN.OBJ e TESTLIB1.OBJ
28.3 Programmi in formato COM distribuiti su due o più moduli
28.4 Caso generale
28.5 I file di inclusione (Include file)
28.5.1 Uso degli include file per l'ordinamento dei segmenti di programma
29.1 La direttiva .MODEL
29.1.1 Il parametro memory_model
29.1.2 Il parametro TINY
29.1.3 Il parametro SMALL
29.1.4 Il parametro MEDIUM
29.1.5 Il parametro COMPACT
29.1.6 Il parametro LARGE
29.1.7 Il parametro HUGE
29.1.8 Il parametro FLAT
29.1.9 Memory model override
29.1.10 Il parametro language
29.1.11 Language override
29.1.12 I parametri NEARSTACK e FARSTACK
29.2 Sintassi avanzata per le procedure
29.2.1 Riscrittura di TestProc con la sintassi avanzata
29.3 La direttiva INVOKE
29.4 L'operatore ADDR di MASM
29.5 Convenzioni per i segmenti di programma
29.5.1 Il segmento principale per i dati statici inizializzati
29.5.2 Il segmento principale per i dati statici non inizializzati
29.5.3 Il segmento principale per i dati statici costanti
29.5.4 Il segmento di stack per i dati dinamici
29.5.5 Il gruppo DGROUP
29.5.6 I segmenti aggiuntivi per i dati statici inizializzati
29.5.7 I segmenti aggiuntivi per i dati statici non inizializzati
29.5.8 Il segmento principale per il codice
29.5.9 I segmenti aggiuntivi per il codice
29.5.10 Considerazioni generali sulle convenzioni per i segmenti di programma
29.6 Variabili simboliche create dall'assembler
29.7 Esempi pratici
29.7.1 Modello TINY
29.7.2 Modello SMALL
29.7.3 Modello MEDIUM
29.7.4 Modello COMPACT
29.7.5 Modelli LARGE e HUGE
29.7.6 Modello FLAT
29.8 Programmi Assembly distribuiti su due o più file
29.9 Le istruzioni ENTER e LEAVE
29.10 Considerazioni finali
30.1 Tipi di dati del C
30.2 Convenzioni per i compilatori C
30.2.1 Segmenti di programma
30.2.2 Stack frame
30.2.3 Valori di ritorno
30.3 Le classi di memoria del C
30.4 Gestione degli indirizzamenti in C
30.5 Protocollo di comunicazione tra C e Assembly
30.6 Esempi pratici
30.6.1 Chiamate incrociate tra moduli C e moduli Assembly
30.6.2 Generazione dell'eseguibile
30.6.3 Riscrittura di ASMMOD1.ASM con l'uso delle caratteristiche avanzate di MASM
30.6.4 Ulteriori dettagli sul programma CMOD1.EXE
30.6.5 Programma CMOD1.EXE con modello LARGE
30.6.6 Funzioni che restituiscono strutture per valore
30.6.7 Interscambio di variabili di tipo Floating Point
30.6.8 Allineamento dei dati al BYTE e alla WORD
30.7 Argomenti dalla linea di comando
30.8 Assembly inline
31.1 Tipi di dati del Pascal
31.2 Convenzioni per i compilatori Pascal
31.2.1 Segmenti di programma
31.2.2 Stack frame
31.2.3 Valori di ritorno
31.3 Le classi di memoria del Pascal
31.4 Gestione degli indirizzamenti in Pascal
31.5 Protocollo di comunicazione tra Pascal e Assembly
31.6 Esempi pratici
31.6.1 Generazione dell'eseguibile
31.6.2 Allineamento dei dati al BYTE e alla WORD
31.7 Assembly inline
32.1 Tipi di dati del BASIC
32.2 Convenzioni per i compilatori BASIC
32.2.1 Segmenti di programma
32.2.2 Stack frame
32.2.3 Valori di ritorno
32.3 Le classi di memoria del BASIC
32.4 Gestione degli indirizzamenti in BASIC
32.5 Protocollo di comunicazione tra BASIC e Assembly
32.6 Esempi pratici
32.6.1 Generazione dell'eseguibile