|
Tutorial
|
Dettaglio Istruzioni |
| Istruzioni della Cpu 80x86 |
SCHEDA n° 07 [I/ 125 di 198] |
|
|
|
|
| Questa istruzione non appartiene al Set dell'8088/86; si usa solo con 80386/486. | |
| Il suo compito è quello di spostare nel primo operando (destinazione, per default la locazione di memoria puntata da ES:DI) il dato a 32 bit (doubleword) assunto per default dalla locazione di memoria puntata da DS:SI (sorgente). | |
| L'istruzione non ha operandi (la dimensione del dato da copiare è prefissata per default); i dati sono comunque assunti dalla locazione puntata da DS:SI e spostati in ES:DI, per cui l'uso di questa istruzione ha senso solo se, in precedenza, entrambi i registri puntatori, SI e DI, sono stati inizializzati con le rispettive etichette specificate come operandi, per esempio anticipando la MOVSD con LEA SI,Testo01 e LEA DI,Testo11 , vedi esempio successivo). | |
| Le sue caratteristiche sono riassunte nella
seguente tabella (leggi le istruzioni
|
| MOVSD | ES:[DI] << DS:[SI] 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 | ||
|
MOVSD |
|
no | no | 7 | 7 | 2 | 1 | |||||||||
La tabella evidenzia che l'istruzione non
modifica alcuna flag, ed essendo un'applicazione particolare della MOVS,
pur non dichiarandoli esplicitamente, l'istruzione si accinge a spostare
tra locazioni di memoria
dati a 32 bit; in dettaglio:
| |||||||||||||||||||
| Questa potente istruzione esegue con un solo codice operativo il compito di 4 istruzioni, cioè equivale all'esecuzione del seguente codice: |
| MOV
EAX,DS:[SI] MOV ES:[DI],EAX ADD SI,4 ADD DI,4 |
| Prima di concludere è opportuno sottolineare che questa istruzione può fruire dell'operatore di autoripetizione REP: anteponendolo al suo mnemonico il processo di spostamento dati viene ripetuto automaticamente CX volte, con conseguente copia automatica di tutta l'area sorgente di memoria; naturalmente il numero di coppie di doublewords, CX, va caricato preventivamente. | |
| Data l'utilità di questa tecnica viene proposto un esercizio d'esempio: |
|
||||||||||||||||||||||||||||||
L'analisi del codice suggerisce queste considerazioni:
| |||||||||||||
| Per confrontare i bytes compilati dall'assemblatore viene proposta anche la versione che utilizza il prefisso REP. |
|
|
|
Scheda n° 07 |
|
Istruzioni Cpu 80x86 |
|
|
|
||
| Istruzione 125 - MOVSD |
|
|
|
|
|
Home
|
|
|||||||
|
Motore Ricerca |
|