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 um
valor em memória ou do registrador acumulador. As flags N, Z e C são afetadas 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 |
>>> |
Rotação para a direita |
<<< |
Rotação para a esquerda |
<- |
Atribuição |
Acc. |
Acumulador |
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.
ROL - Rotate Left - Rotacionar à esquerda
ROL rotaciona todos bits em uma posição à esquerda. O bit 0 recebe o valor da flag Carry e o bit 7 é deslocado para a
flag Carry. Para rotacionar mais de um bit, é necessário utilizar várias instruções.
Operação
Bit 0 <- Carry
Carry <- Bit 7
A << 1
(M) << 1
F(Flags)
N: a
V: -
B: -
D: -
Z: a
C: a
Endereçamento
Implícito/Acc. |
ROL |
Página Zero |
ROL $NN |
Página Zero,X |
ROL $NN,X |
Absoluto |
ROL $NNNN
|
Absoluto,X |
ROL $NNNN,X |
Tab.10: Flags X/C e valor 8-bits
C |
Bit7 |
Bit6 |
Bit5 |
Bit4 |
Bit3 |
Bit2 |
Bit1 |
Bit0 |
0 |
1* |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
Tab.11: valor 8-bits rotacionado 1 bit à esquerda
C |
Bit7 |
Bit6 |
Bit5 |
Bit4 |
Bit3 |
Bit2 |
Bit1 |
Bit0 |
1* |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
Ex:
LDA #$01
ROL
ROR - Rotate Right - Rotacionar à direita
ROR rotaciona todos bits em uma posição à direita. O bit 7 recebe o valor da flag Carry e o bit 0 é deslocado para a
flag Carry. Para rotacionar mais de um bit, é necessário utilizar várias instruções.
Operação
Bit 7 <- Carry
Carry <- Bit 0
A,(M) >> 1
F(Flags)
N: a
V: -
B: -
D: -
Z: a
C: a
Endereçamento
Implícito/Acc. |
ROR |
Página Zero |
ROR $NN |
Página Zero,X |
ROR $NN,X |
Absoluto |
ROR $NNNN
|
Absoluto,X |
ROR $NNNN,X |
Tab.2: Flags X/C e valor 8-bits
Bit7 |
Bit6 |
Bit5 |
Bit4 |
Bit3 |
Bit2 |
Bit1 |
Bit0 |
C |
1** |
0 |
0 |
0 |
0 |
0 |
0 |
1* |
0 |
Tab.3: valor 8-bits rotacionado 1 bit à direita
Bit7 |
Bit6 |
Bit5 |
Bit4 |
Bit3 |
Bit2 |
Bit1 |
Bit0 |
C |
0 |
1** |
0 |
0 |
0 |
0 |
0 |
0 |
1* |
Ex:
LDA #$01
ROR
Histórico de atualizações
- 11/09/2024 - revisão 2 - adição de tabelas com exemplos e flags afetadas
- 04/10/2023 - revisão 1 - adição de links, correção em layout e navegação
- 28/04/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.