cmpi

Compare immediate

Subtracts the immediate value from the second operand and sets the flags, leaving the operand unchanged.

Sizes .b .w .l, .w by default

Used in
XNZVC –●●●●
  • ● set from the result
  • – not changed

Forms

68020 only

These forms require the 68020. Select opt p=68020 before any code or data.

Operands

#imm
An immediate value written after #: a number, character or label, such as #10, #$FF or #'a'. It must fit the operation’s size: byte -128 to 255, word -32768 to 65535, or long -2147483648 to 4294967295; signed and unsigned spellings are accepted. More
<ea>
An operand using one of the addressing modes listed for this form. The list determines whether it can be a register, memory or an immediate value. With opt p=68020, an allowed d(An,Xn) or d(PC,Xn) mode also permits the corresponding 68020 indexed and memory indirect forms. See 68020 addressing. More

The operand and X are unchanged.

On the 68020, the second operand may also be PC-relative memory, as in cmpi.w #1, flag(pc).

move.l #10, d0
cmpi.w #10, d0
seq d1 ; d1 = $FF (equal)

move.l #5, d2
cmpi.w #10, d2
slt d3 ; d3 = $FF (5 < 10)
sgt d4 ; d4 = $00