Objetivos
        
    
    
    
        
Instruções de Rotação
    
    
        
            
                As instruções de rotação são utilizadas para rotacionar todos bits em uma posição à direita ou à esquerda de 
                uma valor contido no Acumulador(A) apenas. A flag Carry(CY) é afetada por essas instruções. 
            
            Notação utilizada:
            
                
                    
                         | 
                         | 
                    
                
                
                    
                        | #$NN | 
                        Valor hexadecimal imediato | 
                    
                    
                        | #$NNNN; | 
                        Endereço hexadecimal imediato | 
                    
                    
                        | $NNNN | 
                        Endereço hexadecimal | 
                    
                    
                        | $NN ou h | 
                        Valor hexadecimal | 
                    
                    
                        | ;  | 
                        Comentário | 
                    
                    
                        | >> | 
                        Deslocamento à direita | 
                    
                    
                        | << | 
                        Deslocamento à esquerda | 
                    
                    
                        | <- | 
                        Atribuição | 
                    
                    
                        | Acc. | 
                        Acumulador | 
                    
                    
                        | Cy | 
                        Carry | 
                    
                    
                        | M | 
                        Endereço 16-bits contido em HL | 
                    
                    
                        | Flags | 
                         | 
                    
                    
                        | a | 
                        Alterada de acordo com resultado | 
                    
                    
                        | - | 
                        Não sofre alteração | 
                    
                    
                        | 0 | 
                        Sempre zero | 
                    
                    
                        | 1 | 
                        Sempre um | 
                    
                
            
            
                Mais informações sobre os registradores e flags podem ser vistas 
                em Registradores e Flags.
            
         
     
    
        RLC - Rotacionar Acumulador à esquerda
        
     
    
        
            
                Com a instrução RLC, podemos rotacionar o registrador Acumulador em 1-bit a esquerda. O bit 
                mais significativo, bit 7, de A é armazenado na Carry e também é armazenado no bit 0.
            
            
                Como a rotação é feita apenas em uma unidade de bit, várias instruções devem ser utilizadas para 
                rotacionar mais bits de acordo com o necessário.
            
            
                
                    
                        | C | 
                        Bit7 | 
                        Bit6 | 
                        Bit5 | 
                        Bit4 | 
                        Bit3 | 
                        Bit2 | 
                        Bit1 | 
                        Bit0 | 
                    
                
                
                    
                        | - | 
                        1* | 
                        0 | 
                        0 | 
                        0 | 
                        0 | 
                        0 | 
                        0 | 
                        1** | 
                    
                
            
            
                
                    
                        | C | 
                        Bit7 | 
                        Bit6 | 
                        Bit5 | 
                        Bit4 | 
                        Bit3 | 
                        Bit2 | 
                        Bit1 | 
                        Bit0 | 
                    
                
                
                    
                        | 1* | 
                        0 | 
                        0 | 
                        0 | 
                        0 | 
                        0 | 
                        0 | 
                        1** | 
                        1* | 
                    
                
            
            Operação
            Cy, temp <- A(Bit 7)
A << 1
A(Bit 0) <- temp
            Endereçamento
            
            F(Flags)
            S: a
Z: a 
Ac:- 
P: a
Cy:a
            Ex:
            
MVI A, #$01
RLC
         
     
    
        RRC - Rotacionar Acumulador à direita
        
     
    
        
            
                Com a instrução RRC podemos rotacionar o registrador Acumulador em 1-bit à direita. O bit 
                menos significativo, bit 0, de A é armazenado na Carry e também é armazenado no bit mas significativo bit 7.
            
            
                Como a rotação é feita apenas em uma unidade de bit, várias instruções devem ser utilizadas para 
                rotacionar mais bits de acordo com o necessário.
            
            
                
                    
                        | Bit7 | 
                        Bit6 | 
                        Bit5 | 
                        Bit4 | 
                        Bit3 | 
                        Bit2 | 
                        Bit1 | 
                        Bit0 | 
                        C | 
                    
                
                
                    
                        | 1* | 
                        0 | 
                        0 | 
                        0 | 
                        0 | 
                        0 | 
                        0 | 
                        1** | 
                        - | 
                    
                
            
            
                
                    
                        | Bit7 | 
                        Bit6 | 
                        Bit5 | 
                        Bit4 | 
                        Bit3 | 
                        Bit2 | 
                        Bit1 | 
                        Bit0 | 
                        C | 
                    
                
                
                    
                        | 1** | 
                        1* | 
                        0 | 
                        0 | 
                        0 | 
                        0 | 
                        0 | 
                        0 | 
                        1** | 
                    
                
            
            Operação
            lead">Cy,temp <- A(Bit 0)
A >> 1
A(Bit 7) <- temp
            Endereçamento
            
            F(Flags)
            S: a
Z: a 
Ac:- 
P: a
Cy:a
            Ex:
            
MVI A, #$02
RRC
         
     
    
        RAL - Rotacionar Acumulador à esquerda pela Carry
        
     
    
        
            
                Com a instrução RAL podemos rotacionar o registrador Acumulador em 1-bit à esquerda utilizando a Carry. 
                O bit mais significativo, bit 7, do registrador A é transferido para a flag Carry e a Carry anterior é 
                transferida para bit menos significativo, bit 0.
            
            
                Como a rotação é feita apenas em uma unidade de bit, várias instruções devem ser utilizadas para 
                rotacionar mais bits de acordo com o necessário.
            
            
                
                    
                        | C | 
                        Bit7 | 
                        Bit6 | 
                        Bit5 | 
                        Bit4 | 
                        Bit3 | 
                        Bit2 | 
                        Bit1 | 
                        Bit0 | 
                    
                
                
                    
                        | 1*** | 
                        0* | 
                        0 | 
                        0 | 
                        0 | 
                        0 | 
                        0 | 
                        0 | 
                        1** | 
                    
                
            
            
                
                    
                        | C | 
                        Bit7 | 
                        Bit6 | 
                        Bit5 | 
                        Bit4 | 
                        Bit3 | 
                        Bit2 | 
                        Bit1 | 
                        Bit0 | 
                    
                
                
                    
                        | 0* | 
                        0 | 
                        0 | 
                        0 | 
                        0 | 
                        0 | 
                        0 | 
                        1** | 
                        1*** | 
                    
                
            
            Operação
            Cy anterior <- Cy
Cy <- A(Bit 7)
A << 1
A(Bit 0) <- Cy anterior
            Endereçamento
            
            F(Flags)
            S: a
Z: a 
Ac:- 
P: a
Cy:a
            Ex:
            
MVI #$EF
SFC ; Cy <- 1
RAL
         
     
    
        RAR - Rotacionar Acumulador à direita pela Carry
        
     
    
        
            
                Com a instrução RAR podemos rotacionar o registrador Acumulador em 1-bit à direita 
                utilizando a flag Carry. 
                O bit menos significativo, bit 0, do registrador A é transferido para flag Carry, e a Carry anterior
                é transferido para o bit mais significativo, bit 7, do acumulador.
            
            
                Como a rotação é feita apenas em uma unidade de bit, várias instruções devem ser utilizadas 
                para rotacionar mais bits de acordo com o necessário.
            
            
                
                    
                        | Bit7 | 
                        Bit6 | 
                        Bit5 | 
                        Bit4 | 
                        Bit3 | 
                        Bit2 | 
                        Bit1 | 
                        Bit0 | 
                        C | 
                    
                
                
                    
                        | 1* | 
                        0 | 
                        0 | 
                        0 | 
                        0 | 
                        0 | 
                        0 | 
                        0** | 
                        1*** | 
                    
                
            
            
                
                    
                        | Bit7 | 
                        Bit6 | 
                        Bit5 | 
                        Bit4 | 
                        Bit3 | 
                        Bit2 | 
                        Bit1 | 
                        Bit0 | 
                        C | 
                    
                
                
                    
                        | 1*** | 
                        1* | 
                        0 | 
                        0 | 
                        0 | 
                        0 | 
                        0 | 
                        0 | 
                        0** | 
                    
                
            
            Operação
            Cy anterior <- Cy
Cy <- A(Bit 0)
A >> 1
A(Bit 7 <- Cy anterior
            Endereçamento
            
            F(Flags)
            S: a
Z: a 
Ac:- 
P: a
Cy:a
            Ex:
            
MVI #$EE
SFC ; Cy <- 1
RAR
         
     
    
        Histórico de atualizações
        
     
    
        
            
                - 18/02/2025 - revisão 4 - adição de exemplos ilustrativos
 
                - 13/12/2024 - revisão 3 - correção em operações/descrição de RAL e RAR; ajustes pontuais
 
                - 30/08/2024 - revisão 2 - correção em erros gramaticais, adição de flags afetadas
 
                - 04/10/2023 - revisão 1 - adição de links, correção em layout, navegação e erro gramaticais 
 
                - 08/08/2023 - versão inicial
 
            
         
     
    
            
            
                
                    
                    Os cursos oferecidos nesta página são cursos fornecidos por parceiros. Ao comprar um curso clicando
                em seu banner, você está ajudando a manter o projeto TutorialDev vivo. Os sites dos cursos parceiros utilizam cookies.