cmove

Pentium Pro and later

Move if equal (ZF == 1)

cmove reg16, r/m16 | cmove reg32, r/m32 | cmove reg64, r/m64 | cmove reg16, reg16, r/m16 | cmove reg32, reg32, r/m32 | cmove reg64, reg64, r/m64

CMOV moves its source (second) operand into its destination (first) operand if the given condition code is satisfied; otherwise it does nothing.

For a list of condition codes, see the condition codes.

Although the CMOV instructions are flagged P6 and above, they may not be supported by all Pentium Pro processors; the CPUID instruction (CPUID) will return a bit which indicates whether conditional moves are supported.

Loading...

Forms

Every form of cmove the assembler accepts, from NASM's own instruction table. The second column is the processor that introduced the form; a badge marks a form that needs an extension, that is lockable, or that long mode dropped.

FormSinceNotes
cmove reg16, r/m16Pentium Pro
cmove reg32, r/m32Pentium Pro
cmove reg64, r/m64x86-64long
cmove reg16, reg16, r/m16x86-64apxlong
cmove reg32, reg32, r/m32x86-64apxlong
cmove reg64, reg64, r/m64x86-64apxlong