Tutorial
|
Dettaglio Istruzioni |
Istruzioni della Cpu 80x86 |
SCHEDA n° 07 [I/ 102 di 198] |
|
![]() |
|
![]() | Questa istruzione non appartiene al Set dell'8088/86; si usa solo con 80386/486. |
![]() | Il suo compito è quello di trasferire in EAX il dato a 32 bit (doubleword), assunto per default dalle locazioni di memoria puntata da DS:SI. |
![]() | L'istruzione non ha operandi (la dimensione del dato da leggere è prefissata per default) ma, per il suo corretto funzionamento, è necessario comunque inizializzare il registro SI con l'etichetta associata ai dati da leggere, per esempio anticipando la LODSD con LEA SI,Tabel32, vedi esempio successivo). |
![]() | Da notare che la STOSD esegue il compito opposto della LODSD. |
![]() | Le sue caratteristiche sono riassunte nella
seguente tabella (leggi le istruzioni
![]() |
LODSD | Destinazione (EAX) << Sorgente (dato a 32 bit) | |||||||||||||||
Esempio di Applicazione |
Cicli di Clock | Mem Acces |
N° Bytes |
Flag influenzate | ||||||||||||
Mnemonico | Operandi | 86 | 268 | 386 | 486 | O | D | I | T | S | Z | A | P | C | ||
LODSD |
|
no | no | 5 | 5 | 1 | 1 |
![]() | La tabella evidenzia che l'istruzione non
modifica alcuna flag, ed essendo un'applicazione particolare della LODS,
pur non dichiarandoli esplicitamente, l'istruzione si accinge a leggere
dalla memoria
dati a 32 bit; in dettaglio:
| ||||||||||||||
![]() | Questa istruzione esegue con 2 codici
operativi, 66H ADH, il compito di 2 istruzioni,
cioè equivale all'esecuzione del seguente codice: |
MOV
EAX,DS:[SI] ADD SI,4 |
![]() | Sebbene sia possibile fruire dell'operatore di autoripetizione REP, anteponendolo allo mnemonico dell'istruzione, questa pratica risulta in questo caso del tutto inutile; il dato a 32 bit, (doubleword) viene effettivamente letto in EAX automaticamente CX volte ma, data l'impossibilità di "consumarlo" viene sovrascritto, cioè inesorabilmente perso, rendendo inutile l'uso della auto ripetizione! | |
![]() | Data l'utilità di questa tecnica viene proposto un
esercizio d'esempio: |
|
![]() | L'analisi del codice suggerisce queste considerazioni:
|
|
![]() |
Scheda n° 07 |
![]() |
Istruzioni Cpu 80x86 |
![]() |
![]() |
![]() |
||
Istruzione 102 - LODSD |
|
|
|
Home
![]() |
|
|||||||
|
Motore Ricerca |
|