Tutorial |
Dettaglio Istruzioni |
Istruzioni della Cpu 80x86 |
SCHEDA n° 07 [I/ 174 di 198] |
|
|
Questa istruzione non appartiene al Set dell'8088/86; si usa solo con 80286/486. | |
Questa istruzione (SHift logical Left Double) esegue lo spostamento (shift) verso sinistra dei bit dell'operando destinazione (un registro o una locazione di memoria a 16 o a 32 bit) introducendo da destra al loro posto i bit dell'operando sorgente (un registro della medesima dimensione dell'operando destinazione). |
Il meccanismo dell'istruzione risulta chiaro
osservando il suo schema funzionale; con riferimento ad un operando
a 16 bit, ogni volta che viene eseguita:
|
Risulta evidente che il valore iniziale della flag di Carry è ininfluente per il risultato di questa istruzione. | |
Il numero di volte che questo meccanismo viene eseguito dipende dal valore del terzo operando (contatore), di solito il numero 1 oppure il contenuto del registro CL; è possibile specificare anche un numero fino a 255 (cioè esprimibile da un byte, come CL). | |
Nonostante il valore del terzo operando, comunque espresso, il numero di volte massimo possibile è limitato dal processore a 31; in pratica i 3 bit più significativi del contatore vengono assunti comunque uguali a 000. Questa scelta si può far risalire alla necessità di mantenere basso il tempo totale d'esecuzione dell'istruzione e quindi il tempo d'attesa del servizio di una eventuale richiesta d'interruzione. |
Le sue caratteristiche sono riassunte nella seguente tabella (leggi le istruzioni ): |
SHLD Destinaz,Sorg,NumVolte | Dest << NumVolte SHLD Destinazione + Sorgente | |||||||||||||||
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 | ||
SHLD |
BX,AX,10 |
no | no | 3 | 2 | no | 4,7 | # | # | # | ? | # | # | |||
SHLD | EDX,EAX,10 | |||||||||||||||
SHLD | [Depo02],AX,10 | 7 | 3 | |||||||||||||
SHLD | [Depo04],EAX,10 | |||||||||||||||
SHLD |
BX,AX,CL |
no | no | 3 | 3 | no | 3,7 | |||||||||
SHLD | EDX,EAX,CL | |||||||||||||||
SHLD | [Depo02],AX,CL | 7 | 4 | |||||||||||||
SHLD | [Depo04],EAX,CL |
La tabella evidenzia che, oltre alla flag di Carry coinvolta fisicamente nello shift, vengono influenzate anche altreflag. |
La figura seguente mostra le risorse richieste da questa istruzione in funzione degli operandi coinvolti (leggi le istruzioni): |
|
|
Scheda n° 07 | Istruzioni Cpu 80x86 | |||||||
Istruzione 174 - SHLD |
|
|
|
Home |
|
|||||||
|
Motore Ricerca |
|