Push, Push syntax, Description – Intel Extensible Firmware Interface User Manual
Page 827: Operation, Behaviors and restrictions

EFI Byte Code Virtual Machine
Version 1.10
12/01/02
19-53
PUSH
SYNTAX:
PUSH[32|64] {@}R
1
{Index16|Immed16}
DESCRIPTION:
Adjust the stack pointer R0 and store a 32-bit (PUSH32) or 64-bit (PUSH64) Operand 1 value on
the stack.
OPERATION:
R0 <= R0 - 4 (PUSH32)
R0 <= R0 - 8 (PUSH64)
[R0] <= Operand 1
Table 19-39. PUSH Instruction Encoding
BYTE DESCRIPTION
Bit Description
7
0 = Immediate/index absent
1 = Immediate/index present
6
0 = 32-bit operation
1 = 64-bit operation
0
0..5
Opcode = 0x2B
Bit Description
7..4
Reserved = 0
3
0 = Operand 1 direct
1 = Operand 1 indirect
1
0..2 Operand
1
2..3
Optional 16-bit immediate data/index
BEHAVIORS AND RESTRICTIONS:
• If Operand 1 is direct, and an index/immediate data is specified, then the immediate data is read
as a signed value and is added to the Operand 1 register contents such that Operand 1 = R
1
+
Immed16.
• If Operand 1 is indirect, and an index/immediate data is specified, then the immediate data is
interpreted as a natural index and the pushed value is read from [R
1
+ Index16].