cmova

Pentium Pro and later

Move if above (CF == 0 and ZF == 0)

cmova reg16, r/m16 | cmova reg32, r/m32 | cmova reg64, r/m64 | cmova reg16, reg16, r/m16 | cmova reg32, reg32, r/m32 | cmova 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 cmova 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
cmova reg16, r/m16Pentium Pro
cmova reg32, r/m32Pentium Pro
cmova reg64, r/m64x86-64long
cmova reg16, reg16, r/m16x86-64apxlong
cmova reg32, reg32, r/m32x86-64apxlong
cmova reg64, reg64, r/m64x86-64apxlong