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.2 Gli operatori relazionali e booleani
24.3 Le direttive
24.3.1 Le direttive condizionali per la fase di assemblaggio
24.4 Le macro
24.4.1 La direttiva EQU
24.4.2 Le direttive %DEFINE e %XDEFINE
24.4.3 La direttiva %MACRO
24.4.4 Macro con numero variabile di parametri
24.4.5 La direttiva %ROTATE
24.4.6 La direttiva %REP
24.4.7 Il "context stack"
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 %DEFINE
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 EXTERN e GLOBAL
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 I modelli di memoria
29.1.1 Indirizzamento predefinito nel modello TINY
29.1.2 Indirizzamento predefinito nel modello SMALL
29.1.3 Indirizzamento predefinito nel modello MEDIUM
29.1.4 Indirizzamento predefinito nel modello COMPACT
29.1.5 Indirizzamento predefinito nel modello LARGE
29.1.6 Indirizzamento predefinito nel modello HUGE
29.1.7 Indirizzamento predefinito nel modello FLAT
29.1.8 Memory model override
29.1.9 Convenzioni per il prolog code e l'epilog code
29.1.10 Prolog code e epilog code override
29.1.11 Le opzioni NEARSTACK e FARSTACK
29.2 Sintassi avanzata per le procedure
29.2.1 Macro per il prolog code e l'epilog code di una procedura
29.2.2 Macro per la chiamata di una procedura
29.2.3 Libreria di macro per le procedure C e Pascal
29.2.4 Riscrittura di TestProc con una sintassi più avanzata
29.3 Indirizzamento delle variabili locali di una procedura
29.4 Convenzioni per i segmenti di programma
29.4.1 Il segmento principale per i dati statici inizializzati
29.4.2 Il segmento principale per i dati statici non inizializzati
29.4.3 Il segmento principale per i dati statici costanti
29.4.4 Il segmento di stack per i dati dinamici
29.4.5 Il gruppo DGROUP
29.4.6 I segmenti aggiuntivi per i dati statici inizializzati
29.4.7 I segmenti aggiuntivi per i dati statici non inizializzati
29.4.8 Il segmento principale per il codice
29.4.9 I segmenti aggiuntivi per il codice
29.4.10 Considerazioni generali sulle convenzioni per i segmenti di programma
29.5 Esempi pratici
29.5.1 Modello TINY
29.5.2 Modello SMALL
29.5.3 Modello MEDIUM
29.5.4 Modello COMPACT
29.5.5 Modelli LARGE e HUGE
29.5.6 Modello FLAT
29.5.7 Programmi Assembly distribuiti su due o più file
29.6 Le istruzioni ENTER e LEAVE
29.7 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 le macro di LIBPROC.MAC e STDSEGM.MAC
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