Tutorial
|
Dettaglio Istruzioni |
Istruzioni della Cpu 80x86 |
SCHEDA n° 07 [I/ 166 di 198] |
|
![]() |
|
![]() | Questa istruzione sottrae tra loro l'operando sorgente e il valore della flag C (Prestito/Carry) dall'operando destinazione. Il risultato è lasciato nell'operando di destinazione, al posto di quello di partenza. |
![]() | Se il valore della flag C (Prestito/Carry) è lasciato a 1 significa infatti che la sottrazione ha avuto bisogno di prestito per essere eseguita. |
![]() | Gli operandi possono avere dimensione di un byte, di una word o di una doubleword ( con 80386/486). |
![]() | Le sue caratteristiche sono riassunte nella
seguente tabella (leggi le istruzioni
![]() |
SBB
Destinazione,Sorgente SBB minuendo, sottraendo |
Destinazione << Destinazione + Sorgente - flag Carry | |||||||||||||||
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 | ||
SBB |
DX,BX |
3 | 2 | 2 | 1 | no | 2 | # | # | # | # | # | # | |||
SBB |
CL,[Depo01] |
9+EA | 7 | 7 | 2 | 1 | 2,4 | |||||||||
SBB |
CX,[Depo02] |
13+EA | ||||||||||||||
SBB |
[Depo01],BL |
16+EA | 7 | 6 | 3 | 2 | 2,4 | |||||||||
SBB |
[Depo012],BX |
24+EA | ||||||||||||||
SBB |
SI,1234H |
4 | 3 | 2 | 1 | no | 3,4 | |||||||||
SBB |
[Depo01],02H |
17+EA | 7 | 7 | 3 | 2 | 3,6 | |||||||||
SBB |
[Depo02],1234H |
25+EA | ||||||||||||||
SBB |
AL,02 |
4 | 3 | 2 | 3 | no | 2,3 |
![]() | La tabella evidenzia le 3 tipologie degli
operandi di questa istruzione:
|
![]() | Lo scopo di questa istruzione è da valutare
nel contesto in cui ha avuto origine, cioè quello dell'8086: per via dei
limiti della sua ALU (in grado di trattare solo dati a 16 bit) la SBB
ha reso possibile la sottrazione di numeri maggiori di 16 bit, con la seguente
tecnica (ovviamente superata con l'avvento dei nuovi processori):
|
in sostanza la sottrazione del numero CX,DX dal numero AX,BX (entrambi a 32 bit) viene eseguita in 2 tempi, sottraendo prima i 16 bit meno significativi (DX da BX) e poi i rimanenti 16 bit alti (CX da AX), insieme all'eventuale prestito (conservato appunto nella flag di carry) della sottrazione precedente.
![]() | La figura seguente mostra le risorse richieste da questa istruzione in funzione degli operandi e del tipo di indirizzamento coinvolti (leggi le istruzioni): |
|
|
![]() |
Scheda n° 07 |
![]() |
Istruzioni Cpu 80x86 |
![]() |
![]() |
![]() |
||
Istruzione 166 - SBB |
|
|
|
Home
![]() |
|
|||||||
|
Motore Ricerca |
|