Intel 64 and IA-32 Architectures Software Developers Manual Volume 2B, Instruction Set Reference, N-Z

4-214 Vol. 2B
INSTRUCTION SET REFERENCE, N-Z
Operation
IF StackAddrSize = 64
THEN
IF OperandSize = 64
THEN
RSP
(RSP 8);
IF (SRC is FS or GS)
THEN
TEMP = ZeroExtend64(SRC);
ELSE IF (SRC is IMMEDIATE)
TEMP = SignExtend64(SRC); FI;
ELSE
TEMP = SRC;
FI
RSP
TEMP; (* Push quadword *)
ELSE (* OperandSize = 16; 66H used *)
RSP
(RSP 2);
RSP
SRC; (* Push word *)
FI;
ELSE IF StackAddrSize = 32
THEN
IF OperandSize = 32
THEN
ESP
(ESP 4);
IF (SRC is FS or GS)
THEN
TEMP = ZeroExtend32(SRC);
ELSE IF (SRC is IMMEDIATE)
TEMP = SignExtend32(SRC); FI;
ELSE
TEMP = SRC;
FI;
SS:ESP
TEMP; (* Push doubleword *)
ELSE (* OperandSize = 16*)
ESP
(ESP 2);
SS:ESP
SRC; (* Push word *)
FI;
ELSE StackAddrSize = 16
IF OperandSize = 16
THEN
SP
(SP2);
SS:SP
SRC; (* Push word *)
ELSE (* OperandSize = 32 *)