CPERM MACRO
SWAP A,B
SWAP B,C
ENDM
SWAP MACRO
MOV EAX,P
MOV EBX,Q
MOV Q,EAX
MOV P,EBX
ENDM
Posta così, la macro SWAP non solo non è interna alla CPERM ma non è nemmeno espandibile in prima passata, perché ha delle chiamate che ne precedono la definizione. Occorre nidificare le definizioni:
CPERM MACRO
SWAP MACRO
...
ENDM
SWAP A, B
...
ENDM
Pagina 498, Capitolo 7.1.4
Un linguaggio assemblativo, oltre a specificare quali istruzioni macchina ...... , per richiedere, per esempio, di allocare una certa quantità di memoria oppure per passare a una nuova pagina del listato.
Potrebbe essere un errore tecnico del testo, magari valevole di bonus?
No, nessun errore, se tiene in conto che il testo specifica che il listato è prodotto dall'assemblatore (in seconda passata). Dunque "passare a una nuova pagina del listato" implica che si tratta di una nuova pagina nella generazione del listato, ovvero della generazione di un'interruzione di pagina nel listato prodotto fino a quel punto. Riconoscerà che
andare a una certa pagina del listato.
ha un significato diverso, generalmente estraneo alle funzionalità dell'assemblatore.
Confrontare gli algoritmi di ricerca dicotomica e mediante codifica hash rispetto alla velocità delle operazioni di ricerca e di modifica della tabella (inserimenti e rimozioni) (max 10 righe).
Manca il confronto rispetto alla velocità dell'operazione di ricerca. Riguardo alle operazioni di modifica, manca l'esito del confronto (anche se sembra intuibile):
Con l'hashing, invece, basta allocare nel bucket corrispondente [...]
Dunque l'inserimento con l'hashing è più veloce? La conclusione va esplicitata, altrimenti la domanda resta senza risposta.
basta cercare l'elemento da eliminare e togliere tutti i riferimenti a esso
Vale anche qui l'osservazione precedente; inoltre, detta così, non è una sintesi corretta, perché i riferimenti ad esso non sono da "togliere" bensì da "modificare" opportunamente.