Calcolatori elettronici/Istruzioni per la manipolazione dei bit
Le istruzioni per la manipolazione dei bit si suddividono in:
- istruzioni logiche: permettono di modificare o controllare uno o più bit;
- istruzioni di scorrimento: permettono di cambiare la posizione dei bit.
Istruzioni logiche
[modifica | modifica sorgente]Oltre ai registri per il trasferimento dei dati tra il processore e la periferica, vi sono dei registri di controllo/stato in cui ciascun bit informa il processore secondo un parametro sul funzionamento della periferica → il processore deve poter operare su singoli bit.
Le istruzioni logiche (bit a bit) permettono di operare su un singolo bit di una word per volta. La maschera seleziona i bit su cui operare: OR
forza a 1 i bit selezionati dalla maschera, NOT
inverte tutti i bit, e così via.
L'istruzione TEST
esegue l'AND bit a bit restituendo attraverso il flag ZF se un bit vale 1.
Istruzioni di scorrimento
[modifica | modifica sorgente]Le istruzioni di scorrimento permettono di effettuare lo shift dei bit. Si suddividono in:
- istruzioni di shift
- istruzioni di rotazione
Il secondo operando contatore
può essere un immediato o il registro CL.
Istruzioni di shift
[modifica | modifica sorgente]Le istruzioni SHL
e SHR
effettuano lo scalamento puro rispettivamente a sinistra e a destra, inserendo il valore 0 nel bit liberato e salvando il bit espulso nel flag CF.
Se i numeri sono senza segno, lo scalamento coincide con la moltiplicazione/divisione per 2.
Le istruzioni SAL
e SAR
effettuando moltiplicazioni/divisioni per 2 tenendo conto del segno del numero in complemento a 2: l'istruzione SAL
è equivalente alla SHL
, ma la SAR
(verso destra) opera sui numeri negativi inserendo 1 nel bit liberato.
Istruzioni di rotazione
[modifica | modifica sorgente]Le istruzioni ROL
e ROR
reimmettono il bit espulso nel bit liberato, e lo salvano nel CF sovrascrivendo il valore precedente. Le istruzioni RCL
e RCR
sovrascrivono il CF dopo aver inserito lo stesso suo valore precedente nel bit liberato.