وو

وحید آنلاین . آرشیو وبلاگ وحیدمی دات آی آر . شرکت بیان. vahidmy.blog.ir

وو

وحید آنلاین . آرشیو وبلاگ وحیدمی دات آی آر . شرکت بیان. vahidmy.blog.ir

CMOVcc

CMOVcc 

Usage:CMOVcc dest, src                        Modifies flags: None

The CMOVcc instructions check the state of one or more of the status flags in the EFLAGS register (CF, OF, PF, SF, and ZF) and perform a move operation if the flags are in a specified state (or condition). A condition code (cc) is associated with each instruction to indicate the condition being tested for. If the condition is not satisfied, a move is not performed and execution continues with the instruction following the CMOVcc instruction.

Conditional Move


CMOVcc reg16,r/m16            ; o16 0F 40+cc /r      [P6]

CMOVcc reg32,r/m32            ; o32 0F 40+cc /r      [P6]


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


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


CMOVE/CMOVZ     Conditional move if equal/Conditional move if zero

CMOVNE/CMOVNZ Conditional move if not equal/Conditional move if not zero

CMOVA/CMOVNBE Conditional move if above/Conditional move if not below or equal

CMOVAE/CMOVNB Conditional move if above or equal/Conditional move if not below

CMOVB/CMOVNAE Conditional move if below/Conditional move if not above or equal

CMOVBE/CMOVNA Conditional move if below or equal/Conditional move if not above

CMOVG/CMOVNLE Conditional move if greater/Conditional move if not less or equal

CMOVGE/CMOVNL Conditional move if greater or equal/Conditional move if not less

CMOVL/CMOVNGE Conditional move if less/Conditional move if not greater or equal

CMOVLE/CMOVNG Conditional move if less or equal/Conditional move if not greater

CMOVC               Conditional move if carry

CMOVNC             Conditional move if not carry

CMOVO               Conditional move if overflow

CMOVNO             Conditional move if not overflow

CMOVS               Conditional move if sign (negative)

CMOVNS             Conditional move if not sign (non-negative)

CMOVP/CMOVPE   Conditional move if parity/Conditional move if parity even

         CMOVNP/CMOVPO Conditional move if not parity/Conditional move if parity odd


EXAMPLE:

cmovnc eax Label