6-24
INSTRUCTION SET SUMMARY
The POP instruction copies the word or doubleword at the current top of stack (indicated by the
ESP register) to the location specified with the destination operand, and then increments the ESP
register to point to the new top of stack (refer to Figure 6-3). The destination operand may
specify a general-purpose register, a segment register, or a memory location.
The POPA instruction reverses the effect of the PUSHA instruction. It pops the top eight words
or doublewords from the top of the stack into the general-purpose registers, except for the ESP
register (refer to Figure 6-4). If the operand-size attribute is 32, the doublewords on the stack are
transferred to the registers in the following order: EDI, ESI, EBP, ignore doubleword, EBX,
EDX, ECX, and EAX. The ESP register is restored by the action of popping the stack. If the
operand-size attribute is 16, the words on the stack are transferred to the registers in the
following order: DI, SI, BP, ignore word, BX, DX, CX, and AX.
Figure 6-2. Operation of the PUSHA Instruction
Figure 6-3. Operation of the POP Instruction
0
Stack31
Before Pushing Registers
Growth
ESP
n - 4
n - 8
n
Stack
0
31
After Pushing Registers
ESP
EAX
EDI
EBX
EBP
ECX
EDX
Old ESP
ESI
n - 36
n - 20
n - 28
n - 12
n - 16
n - 24
n - 32
0
31
Stack
After Popping Doubleword
Growth
ESP
n - 4
n - 8
n
Stack
Before Popping Doubleword
ESP
Doubleword Value
0
31