Extensible Firmware Interface Specification
19-52 12/01/02 Version 1.10
POPn
SYNTAX:
POPn {@}R
1
{Index16|Immed16}
DESCRIPTION:
Read an unsigned natural value from memory pointed to by stack pointer R0, adjust the stack
pointer accordingly, and store the value back to Operand 1.
OPERATION:
Operand 1 <= (UINTN)[R0]
R0 <= R0 + sizeof (VOID *)
Table 19-38. POPn Instruction Encoding
BYTE DESCRIPTION
Bit Description
7 0 = Immediate/index absent
1 = Immediate/index present
6 Reserved = 0
0
0..5 Opcode = 0x36
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
fetched as a signed value and is added to the value popped from the stack and the result is
stored back to the Operand 1 register.
• If Operand 1 is indirect, and an index/immediate data is specified, then the immediate data is
interpreted as a natural index and the value popped from the stack is stored at [R
1
+ Index16].
• If Operand 1 is direct, and the instruction is executed on a 32-bit machine, then the result is
stored to the Operand 1 register with the upper 32 bits cleared.