Specifications
Intel
®
64 and IA-32 Architectures Software Developer’s Manual Documentation Changes 33
Documentation Changes
Instruction Operand Encoding
...
CMP—Compare Two Operands
Opcode Instruction Op/
En
64-Bit
Mode
Compat/
Leg Mode
Description
0F 4A /r CMOVP r16, r/m16 A Valid Valid Move if parity (PF=1).
0F 4A /r CMOVP r32, r/m32 A Valid Valid Move if parity (PF=1).
REX.W + 0F 4A
/r
CMOVP r64, r/m64 A Valid N.E. Move if parity (PF=1).
0F 4A /r CMOVPE r16, r/m16 A Valid Valid Move if parity even (PF=1).
0F 4A /r CMOVPE r32, r/m32 A Valid Valid Move if parity even (PF=1).
REX.W + 0F 4A
/r
CMOVPE r64, r/m64 A Valid N.E. Move if parity even (PF=1).
0F 4B /r CMOVPO r16, r/m16 A Valid Valid Move if parity odd (PF=0).
0F 4B /r CMOVPO r32, r/m32 A Valid Valid Move if parity odd (PF=0).
REX.W + 0F 4B
/r
CMOVPO r64, r/m64 A Valid N.E. Move if parity odd (PF=0).
0F 48 /r CMOVS r16, r/m16 A Valid Valid Move if sign (SF=1).
0F 48 /r CMOVS r32, r/m32 A Valid Valid Move if sign (SF=1).
REX.W + 0F 48
/r
CMOVS r64, r/m64 A Valid N.E. Move if sign (SF=1).
0F 44 /r CMOVZ r16, r/m16 A Valid Valid Move if zero (ZF=1).
0F 44 /r CMOVZ r32, r/m32 A Valid Valid Move if zero (ZF=1).
REX.W + 0F 44
/r
CMOVZ r64, r/m64 A Valid N.E. Move if zero (ZF=1).
Op/En Operand 1 Operand 2 Operand 3 Operand 4
A ModRM:reg (r, w) ModRM:r/m (r) NA NA
Opcode Instruction Op/
En
64-Bit
Mode
Compat/
Leg Mode
Description
3C ib CMP AL, imm8 DValid Valid Compare imm8 with AL.
3D
iw CMP AX, imm16 DValid Valid Compare imm16 with AX.
3D id CMP EAX, imm32 DValid Valid Compare imm32 with EAX.
REX.W + 3D id CMP RAX, imm32 D Valid N.E. Compare imm32 sign-
extended to 64-bits with
RAX.
80 /7 ib CMP r/m8, imm8 CValid Valid Compare imm8 with r/m8.
REX + 80 /7 ib CMP r/m8
*
, imm8 C Valid N.E. Compare imm8 with r/m8.
81 /7 iw CMP r/m16,
imm16
CValid Valid Compare imm16 with r/m16
.