 | L'analisi del codice suggerisce queste considerazioni:
 | prendiamo nota della tecnica con cui viene riservata memoria per le 2
aree da confrontare, con la pseudoistruzione
Dup. |
 | notiamo la presenza dell'istruzione CLD,
per imporre un'analisi in avanti. |
 | per inizializzare gli offset
dei puntatori delle 2 aree da confrontare si è fatto uso l'uso dell'istruzione LEA. |
 | i segment si ritengono quelli di default, DS e
ES. |
 | il contatore CX è stato caricato con la dimensione di
entrambe le aree e il prefisso REPE
provvederà a ripetere automaticamente il confronto se i 2 bytes
assunti dalla coppia di locazioni sono uguali tra loro, fino
all'esaurimento di tutti gli elementi. |
 | se le coppie di bytes sono
tutte uguali il processo ha termine regolarmente e, essendo E
la condizione d'uscita, l'istruzione JNE
non verrà eseguita e il programma
proseguirà subito sotto, nella zona di programma indicata
dall'etichetta tutte_uguali. |
 | se viene rilevata una coppia
diversa il processo verrà
immediatamente interrotto prima della fine e, essendo ora NE
la condizione d'uscita, l'istruzione JNE
verrà eseguita e il programma
proseguirà più in basso, nella zona di programma indicata
dall'etichetta trovata_diversa.: le
prime istruzioni da eseguire sono, in questo caso, il decremento dei
puntatori DI e SI,
così da favorire la localizzazione dei dati trovati diversi. |
|