Calcolatori elettronici/Istruzioni per la manipolazione dei bit

Wikibooks, manuali e libri di testo liberi.
Jump to navigation Jump to search
CopertinaCalcolatori elettronici/Copertina
  1. L'evoluzione dei sistemi di elaborazioneCalcolatori elettronici/L'evoluzione dei sistemi di elaborazione
  2. Il progetto di circuiti logiciCalcolatori elettronici/Il progetto di circuiti logici
  3. I processoriCalcolatori elettronici/I processori
  4. Architettura 8086Calcolatori elettronici/Architettura 8086
  5. Unità di controlloCalcolatori elettronici/Unità di controllo
  6. Introduzione alle memorieCalcolatori elettronici/Introduzione alle memorie
  7. Le memorie ad accesso casualeCalcolatori elettronici/Le memorie ad accesso casuale
  8. Le memorie cacheCalcolatori elettronici/Le memorie cache
  9. Le memorie ad accesso serialeCalcolatori elettronici/Le memorie ad accesso seriale
  10. La memoria virtualeCalcolatori elettronici/La memoria virtuale
  11. La gestione dei dispositivi input/outputCalcolatori elettronici/La gestione dei dispositivi input/output
  12. Intel 8255Calcolatori elettronici/Intel 8255
  13. Intel 8259Calcolatori elettronici/Intel 8259
  14. I busCalcolatori elettronici/I bus
  15. Le architetture a pipelineCalcolatori elettronici/Le architetture a pipeline
  16. Assembler 8086
IntroduzioneCalcolatori elettronici/Introduzione
  1. Informazioni generaliCalcolatori elettronici/Informazioni generali
  2. Istruzioni di trasferimento datiCalcolatori elettronici/Istruzioni di trasferimento dati
  3. Istruzioni aritmeticheCalcolatori elettronici/Istruzioni aritmetiche
  4. Istruzioni per il controllo del flussoCalcolatori elettronici/Istruzioni per il controllo del flusso
  5. Istruzioni per la manipolazione dei bitCalcolatori elettronici/Istruzioni per la manipolazione dei bit
  6. Le procedureCalcolatori elettronici/Le procedure
  7. Istruzioni per il controllo del processoreCalcolatori elettronici/Istruzioni per il controllo del processore
  8. Formato delle istruzioni macchina, tempi di esecuzioneCalcolatori elettronici/Formato delle istruzioni macchina, tempi di esecuzione

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]

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]

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]

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]

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.