Com a instrução CMP, que utilizando um operação de subtração, podemos comparar registradores
ou registrador e valor imediato . As flags N, Z, C e V são alteradas de acordo com o resultado.
A Carry tem o mesmo comportamento da subtração.
Sintaxe:
CMP{<cond>} Rn, <endereçamento>
Operação:
Resultado <- Rn - <endereçamento>
N, Z, C, V <- Resultado
Endereçamento:
#<imediato>
Rm
Rm, LSL #<deslocamento_imediato>
Rm, LSL Rs
Rm, LSR #<deslocamento_imediato>
Rm, LSR Rs
Rm, ASR #<deslocamento_imediato>
Rm, ASR Rs
Rm, ROR #<deslocamento_imediato>
Rm, ROR Rs
Rm, RRX
CPSR:
N: a
Z: a
C: a
V: a
Ex:
CMP R0, R2
CMP R1, #FF00FF00