Sezione

Indirizzi Base Registri Interni
Area Comunicazione BIOS Funzioni BIOS Funzioni DOS
Prefazione Capitolo 1 Capitolo 2 Schede
Libreria ASM Libreria MAC Palestra Progetti ASM
Info Download INDICE

Schede del Tutorial

Home » Programma il Computer » Tutorial Assembly

Le Schede del Tutorial

  Numeri e Logica Binaria

SCHEDA n° 09 [ 14  di 20] 

    

    Operazioni Logiche su Numeri Binari: le Rotazioni
     
bulletLo scorrimento (shift) dei bit di un numero binario è, di norma, un meccanismo distruttivo; il valore del dato operato viene perduto senza possibilità di recupero; per questa ragione il processore 80x86 prevede un altro gruppo di interessanti istruzioni, con il compito di far ruotare il contenuto di numero binario.
bullettutti i bit appartenenti al numero binario sono spostati verso destra o verso sinistra
bulletil bit più significativo (nella rotazione verso sinistra) oppure il bit meno significativo (nella rotazione verso destra) finisce nella flag Carry o rientra direttamente nel posto lasciato vuoto a destra (nella rotazione verso sinistra) oppure a sinistra (nella rotazione verso destra).

  

bulletIn concreto, supponiamo di voler imporre una Rotazione verso sinistra ad un numero binario a 8 bit; ecco l'aspetto del dato durante le 8 rotazioni consecutive:

 

    bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0   exad
Situazione INIZIALE 1 0 1 0 0 1 1 1 A7H
dopo la 1° rotazione 0 1 0 0 1 1 1 1 4FH
dopo la 2° rotazione 1 0 0 1 1 1 1 0 9EH
dopo la 3° rotazione 0 0 1 1 1 1 0 1 3DH
dopo la 4° rotazione 0 1 1 1 1 0 1 0 7AH
dopo la 5° rotazione 1 1 1 1 0 1 0 0 F4H
dopo la 6° rotazione 1 1 1 0 1 0 0 1 E9H
dopo la 7° rotazione 1 1 0 1 0 0 1 1 D3H
Situazione FINALE 1 0 1 0 0 1 1 1 A7H

  

bulletIl set delle istruzioni dell'80x86 prevede queste possibilità:

  

bullet
    RCL  (Rotate through Carry Left)

 

esegue la rotazione verso sinistra dei bit dell'operando attraverso la flag di Carry; 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 valore corrente della flag di Carry prende il posto lasciato libero dal bit meno significativo (bit0) dell'operando
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 è rientrato da destra

 

  

 

      

bullet
    RCR  (Rotate through Carry Right)

 

esegue la rotazione verso destra dei bit dell'operando destinazione attraverso la flag di Carry; 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 valore corrente della flag di Carry prende il posto lasciato libero dal bit più significativo (bit7) dell'operando
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 è rientrato da sinistra

 

  

 

      

bullet
    ROL   (ROtate Left)

 

esegue la rotazione verso sinistra dei bit dell'operando; rispetto alla RCL non attraversa la flag di Carry, ma mantiene in essa la copia del bit estratto; 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 a 8 bit) dell'operando, spinto fuori dall'operando, viene fatto rientrare da destra e prende il posto lasciato libero dal bit meno significativo (bit0)
la flag di Carry assume il valore del bit più significativo (bit7) dell'operando

 

  

 

 

Il meccanismo logico della ROL sottolinea la sua capacità di scambiare la parte alta con la parte bassa dell'operando.

      

bullet
    ROR   (ROtate Right)

 

esegue la rotazione verso sinistra dei bit dell'operando destinazione; rispetto alla RCR non attraversa la flag di Carry, ma mantiene in essa la copia del bit estratto; 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 meno significativo (bit0) dell'operando, spinto fuori dall'operando, viene fatto rientrare da sinistra e prende il posto lasciato libero dal bit più significativo (bit7)
la flag di Carry assume il valore del bit meno significativo (bit0) dell'operando

 

  

 

 

Il meccanismo logico della ROR sottolinea la sua capacità di scambiare la parte alta con la parte bassa dell'operando.

    

Pagina Precedente Scheda n° 09 Pagina Successiva Numeri e Logica Binaria Torna al Menu delle Schede del "Tutorial" Lezioni - Vai al DownLoad dei files DOC Torna al Menu del "Tutorial"
Scheda n° 09 -  14
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

    

SCHEDE » 1.Header EXE 2.PseudoOp MASM 3.Differenza tra Macro e Procedure
4.
Tabella Vettori 5.PSP 6.Stack 7.Istruzioni 80x86
8.La misura dell'Informazione 9.Numeri e Logica Binaria
TUTORIAL » Indirizzi Base | Registri Interni | Area Comunicaz. BIOS | Funzioni BIOS | Funzioni DOS
Prefazione | CAP 1 | CAP 2 | Schede | Palestra
Libreria ASM | Libreria MAC | Progetti ASM | Download | Info | Indice
Home 
Pascal|Manuali|Tabelle|Schede
Tutorial Assembly|Palestra Assembler
Aggiungi Giobe®2000 ai preferiti  
Motore
Ricerca
  Rendi Giobe®2000 pagina di Default
© 2001-2010  -  Studio Tecnico ing. Giorgio OBER
Tutti i diritti sono riservati