| Il set delle istruzioni dell'80x86 prevede queste
possibilità:
|
|
esegue lo spostamento (shift)
verso sinistra dei bit dell'operando
con ingresso di
zero da destra; con riferimento ad un
operando a 8 bit, ogni volta che viene eseguita:
|
tutti i bit dell'operando vengono
spostati (Shift) di un posto verso sinistra |
|
il bit più
significativo (bit7) dell'operando sarebbe perduto, spinto fuori dall'operando,
ma viene invece memorizzato nella flag di Carry,
al posto di quello che c'era prima |
|
il posto lasciato libero dal
bit
meno significativo (bit0)
dell'operando viene sovrascritto con un bit nullo |
|
|
|
|
|
|
Il meccanismo logico della SHL
sottolinea che questa istruzione realizza la moltiplicazione binaria per 2
dell'operando. |
|
|
|
SHR
(SHift
logical Right) |
|
esegue lo spostamento (shift) verso destra
dei bit dell'operando
con ingresso di zero da sinistra; con
riferimento ad un
operando a 8 bit, ogni volta che viene eseguita:
|
tutti i bit dell'operando vengono
spostati (Shift) di un posto verso destra |
|
il bit meno
significativo (bit0)
dell'operando sarebbe perduto, spinto fuori dall'operando, ma viene invece
memorizzato nella flag di Carry, al
posto di quello che c'era prima |
|
il posto lasciato libero dal
bit
più significativo (bit7) dell'operando viene
sovrascritto con un bit uguale a zero |
|
|
|
|
|
|
Il meccanismo logico della
SHR sottolinea che questa istruzione realizza la
divisione binaria per 2
con segno dell'operando. |
|
|
|
SAL
(Shift
Arithmetic Left) |
|
esegue lo
spostamento (shift) verso sinistra dei bit dell'operando
destinazione con ingresso di
zero da destra; con riferimento ad un
operando a 8 bit, ogni volta che viene eseguita:
|
tutti i bit dell'operando vengono
spostati (Shift) di un posto verso sinistra |
|
il bit più
significativo (bit7) dell'operando sarebbe perduto, spinto fuori dall'operando,
ma viene invece memorizzato nella flag di Carry,
al posto di quello che c'era prima |
|
il posto lasciato libero dal
bit
meno significativo (bit0)
dell'operando viene sovrascritto con un bit nullo |
|
|
|
|
|
|
Il meccanismo logico della SAL
sottolinea che questa istruzione realizza la moltiplicazione binaria per 2
dell'operando. |
|
|
|
SAR
(Shift
Arithmetic Right) |
|
esegue lo
spostamento (shift) verso destra dei bit dell'operando con ingresso del
bit più significativo, cioè del suo bit di
segno; con riferimento ad un
operando a 8 bit, ogni volta che viene eseguita:
|
tutti i bit dell'operando vengono
spostati (Shift) di un posto verso destra |
|
il bit meno
significativo (bit0)
dell'operando sarebbe perduto, spinto fuori dall'operando, ma viene invece
memorizzato nella flag di Carry, al
posto di quello che c'era prima |
|
il posto lasciato libero dal
bit
più significativo (bit7) dell'operando viene
sovrascritto con un bit uguale a stesso!! |
|
|
|
|
|
|
Poichè il bit
più significativo dell'operando è anche il
suo bit di segno, lo schema
dell'istruzione può essere anche il seguente: |
|
|
|
|
|
|