User Guide
44 General-Purpose Programming
AMD64 Technology 24592—Rev. 3.15—November 2009
Stack Operations
• POP—Pop Stack
• POPA—Pop All to GPR Words
• POPAD—Pop All to GPR Doublewords
• PUSH—Push onto Stack
• PUSHA—Push All GPR Words onto Stack
• PUSHAD—Push All GPR Doublewords onto Stack
• ENTER—Create Procedure Stack Frame
• LEAVE—Delete Procedure Stack Frame
PUSH copies the specified register, memory location, or immediate value to the top of stack. This
instruction decrements the stack pointer by 2, 4, or 8, depending on the operand size, and then copies
the operand into the memory location pointed to by SS:rSP.
POP copies a word, doubleword, or quadword from the memory location pointed to by the SS:rSP
registers (the top of stack) to a specified register or m emory location. Then, the rSP register is
incremented by 2, 4, or 8. After the POP operation, rSP points to the new top of stack.
CMOVNE
CMOVNZ
ZF=0
Conditional move if not equal
Conditional move if not zero
CMOVBE
CMOVNA
CF=1orZF=1
Conditional move if below or equal
Conditional move if not above
CMOVA
CMOVNBE
CF = 0 and ZF = 0
Conditional move if not below or equal
Conditional move if not below or equal
CMOVS SF = 1 Conditional move if sign
CMOVNS SF = 0 Conditional move if not sign
CMOVP
CMOVPE
PF=1
Conditional move if parity
Conditional move if parity even
CMOVNP
CMOVPO
PF=0
Conditional move if not parity
Conditional move if parity odd
CMOVL
CMOVNGE
SF <> OF
Conditional move if less
Conditional move if not greater or equal
CMOVGE
CMOVNL
SF=OF
Conditional move if greater or equal
Conditional move if not less
CMOVLE
CMOVNG
ZF=1orSF<>OF
Conditional move if less or equal
Conditional move if not greater
CMOVG
CMOVNLE
ZF = 0 and SF = OF
Conditional move if greater
Conditional move if not less or equal
Table 3-4. rFLAGS for CMOVcc Instructions (continued)
Mnemonic Required Flag State Description