Objetivos
As instruções de comparação são utilizadas para comparar valores de memória, ou imediato, com os registradores
Acumulador, X e Y, e atualizar as flags de status de acordo com o resultado.
Internamente uma subtração é feita e o resultado é utilizado para setar as
flags N, Z e C, e posteriormente descartado.
Notação utilizada
|
|
#$NN |
Valor hexadecimal imediato |
#$NNNN; |
Endereço hexadecimal imediato |
$NNNN |
Endereço hexadecimal |
$NN ou h |
Valor hexadecimal |
; |
Comentário |
() |
Conteúdo de memória |
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.
CMP - Compare Accumulator - Comparar Acumulador
Esta instrução compara um valor de memória ou imediato com o registrador acumulador e atualiza as flags de acordo com o resultado.
Operação
Z,C,N = A - M
Z,C,N = A - #$NN
Endereçamento
Imediato |
CMP #$NN |
Página Zero |
CMP $NN |
Página Zero,X |
CMP $NN,X |
Absoluto |
CMP $NNNN |
Absoluto,X |
CMP $NNNN,X |
Absoluto,Y |
CMP $NNNN,Y |
Indireto X |
CMP ($NN,X) |
Indireto Y |
CMP ($NN),Y |
PS - Flags afetadas
N: a
V: -
B: -
D: -
D: -
Z: a
C: a
Ex.:
LDA #$01
CMP #$01 ; Z = 1 N = 0 e C=0
CPX - Compare X Register - Compara Registrador X
Esta instrução compara um valor de memória ou imediato com o registrador X e atualiza as flags de acordo com o resultado.
Operação
Z,C,N = X - M
Z,C,N = X - #$NN
Endereçamento
Imediato |
CPX #$NN |
Página Zero |
CPX $NN |
Absoluto |
CPX $NNNN |
PS - Flags afetadas
N: a
V: -
B: -
D: -
D: -
Z: a
C: a
Ex.:
LDX #$01
CPX #$01 ; Z = 1 N = 0 e C=0
CPY - Compare Y Register - Compara Registrador Y
Esta instrução compara um valor de memória ou imediato com o registrador Y e atualiza as flags de
acordo com o resultado.
Operação
Z,C,N = Y - M
Z,C,N = Y - #$NN
Endereçamento
Imediato |
CPY #$NN |
Página Zero |
CPY $NN |
Absoluto |
CPY $NNNN |
PS - Flags afetadas
N: a
V: -
B: -
D: -
D: -
Z: a
C: a
Ex.:
LDY #$01
CPY #$01 ; Z = 1 N = 0 e C=0
Histórico de atualizações
- 12/03/2025 - revisão 3 - ajuste em intro
- 11/09/2024 - revisão 2 - adição de flags afetadas, correção em CPY
- 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.