Clique sobre os objetivos listados abaixo para navegar até o conteúdo desejado.

  1. Instruções de comparação
  2. Instrução CMP

As instruções de comparação são utilizadas para comparar valores de registrador com valores de memória ou imediatos. Internamente uma operação de subtração é realizada e as flags Z, S, P, Cy e AC são atualizados de acordo com o resultado que é descartado posteriormente.

Esse tipo de operação é utilizada para tomada de decisões, como if e else, e utilizada em conjunto com as instruções de Desvio(Jumps condicionais).

Notação utilizada
#$NN Valor hexadecimal imediato
; Comentário
<- Atribuição
R Registradores A,B,C,D,E,H e L
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.

Essa instrução compara um valor, em memória ou imediato, com o registrador acumulador e seta as flags de acordo com o resultado.

Operação
Z, S, P, Cy, AC <- A - R
Z, S, P, Cy, AC <- A - #$NN
Z, S, P, Cy, AC <- A - M(HL)
Endereçamento
Registrador CMP R
Indireto CMP M
Imediato CPI #$NN
F(Flags)
S: a
Z: a 
Ac:a
P: a
Cy:a
Ex.:
MVI A,#$01
CPI #$01
; Z <- 1, 
; S <- 0 
; Cy,Ac <- 0
  1. 13/12/2024 - revisão 4 - Ajustes pontuais
  2. 09/09/2024 - revisão 3 - Correção em erros gramaticais, endereçamentos e exemplo em CMP, adição de flags afetadas
  3. 30/08/2024 - revisão 2 - Correção em links de objetivos
  4. 04/10/2023 - revisão 1 - adição de links, correção em layout e navegação e erros gramaticaiss
  5. 28/04/2023 - versão inicial