Page 1127 - Informatica dalla A a Z
P. 1127
L’istruzione SUB effettua una sottrazione tra il primo ed il secondo operando copiando il
risultato nel primo operando.
SUB operando1,operando2
L’istruzione DIV effettua una divisione ponendo a denominatore l’operando indicato. Se
l’operando è a 8 bit effettua la divisione tra AL e l’operando. Se l’operando è a 16 bit
effettua la divisione tra il numero a 32 bit formato dalla coppia di registri DX:AX e
l’operando.
Nella divisione a 8 bit il quoziente viene collocato nel registro AL e il resto nel registro AH.
Nella divisione a 16 bit il quoziente viene collocato nel registro AX e il resto nel registro DX.
Nella divisione a 8 bit il registro DX deve essere sempre azzerato prima di effettuare la
divisione, a causa di un bug dell’assemblatore Intel che non è stato ancora risolto. I flag CF
e OF sono settati se il valore occupa la parte alta del risultato.
DIV operando
L’istruzione MUL effettua una moltiplicazione tra l’operando indicato e il registro implicito
AL o AX a seconda della dimensione dell’operando. Se l’operando è a 8 bit viene
moltiplicato il registro AL per l’operando e il prodotto viene collocato nel registro AX. Se
l’operando è a 16 bit viene moltiplicato il registro AX per l’operando e il prodotto viene
collocato nella coppia di registri DX:AX, dove DX rappresenta i 16 bit più significativi e AX i
16 bit meno significativi del prodotto (32 bit).
MUL operando
L’istruzione SHL effettua uno scorrimento logico (shift) a sinistra dei bit dell’operando.
Il bit più significativo dell’operando viene copiato nel CF, mentre il bit meno significativo
viene inizializzato a zero.
Gli scorrimenti, il cui numero è determinato dal dato immediato o dal contenuto del
registro CL, sono 1-8 per operandi di tipo Byte, 1-16 per operandi di tipo Word, 1-32 per
operandi di tipo DWord.
Nota: L’operazione coincide con una moltiplicazione per una potenza del 2 (2, 4, 8, 16, 32,
64, 128 ecc.).
SHL AL,2 ;equivale a moltiplicare AL per 4
L’istruzione SHR effettua uno scorrimento logico (shift) a destra dei bit dell’operando. Il bit
meno significativo dell’operando viene copiato nel CF, mentre il bit più significativo viene
inizializzato a zero.
Gli scorrimenti, il cui numero è determinato dal dato immediato o dal contenuto del
registro CL, sono 1-8 per operandi di tipo Byte, 1-16 per operandi di tipo Word, 1-32 per
operandi di tipo DWord. L’operazione coincide con una divisione per una potenza del 2 (2,
4, 8, 16, 32, 64, 128 etc.).
SHR AL,3 ;equivale a dividere AL per 8
L’istruzione ROL effettua una rotazione (rotate) a sinistra dei bit dell’operando
interpretando il CF come bit più significativo dell’operando. A ogni scorrimento il CF passa
nel bit meno significativo e il bit più significativo passa nel CF.
ROL operando,bit
1123