Tutorial |
Dettaglio Istruzioni |
Istruzioni della Cpu 80x86 |
SCHEDA n° 07 [I/ 046 di 198] |
|
|
Questa istruzione non appartiene al Set dell'8088/86; si usa solo con 80386/486. | |
Si tratta di una istruzione piuttosto efficiente, nata per stoccare in una precisa area di memoria, spesso detta stringa e puntata per default da ES:EDI, il dato a 32 bit proveniente dal dispositivo d'ingresso il cui nome esadecimale è indicato per default da DX. |
Per le scelte fatte dai primi progettisti di personal computer (IBM compatibili) per pilotare le periferiche sono state utilizzate solo le prime 10 linee d'indirizzo, da ADD0 a ADD9; per questa ragione per i nomi dei dispositivi sono previsti solo i numeri da 0000H (0) a 03FFH (1023=210), sebbene DX consenta la specifica di numeri di gran lunga maggiori. solo i dispositivi più moderni cominciano a riferirsi a nomi al di fuori di questo range... |
Le sue caratteristiche sono riassunte nella seguente tabella (leggi le istruzioni ): |
INSD | ES:DI << doubleword dalla porta DX | |||||||||||||||
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 | ||
INSD |
|
no | 5 | 15 | 17 | 1 | 1 |
Dalla tabella si deduce che l'istruzione non
influenza le flag e che è priva di operandi: in
realtà, essendo un'applicazione particolare della INS,
pur non dichiarandoli esplicitamente l'istruzione si accinge a leggere
dati a 32 bit; in dettaglio:
| |||||||||||||||
Questa istruzione esegue con i suoi codici operativi, 66 6DH, il compito di 3 istruzioni, cioè equivale all'esecuzione del seguente codice: |
IN
EAX,DX MOV ES:[EDI],EAX 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 acquisizione dati (a 32 bit, doublewords) viene ripetuto automaticamente CX, con conseguente aggiornamento automatico di tutta l'area di memoria; per il corretto uso dei questo prefisso è dunque necessario caricare preventivamente CX con il numero degli input da eseguire. | |
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 046 - INSD |
|
|
|
Home |
|
|||||||
|
Motore Ricerca |
|