3-585
INSTRUCTION SET REFERENCE
PUSHA/PUSHAD—Push All General-Purpose Register (Continued)
Operation
IF OperandSize = 32 (* PUSHAD instruction *)
THEN
Temp
<
(ESP);
Push(EAX);
Push(ECX);
Push(EDX);
Push(EBX);
Push(Temp);
Push(EBP);
Push(ESI);
Push(EDI);
ELSE (* OperandSize = 16, PUSHA instruction *)
Temp
<
(SP);
Push(AX);
Push(CX);
Push(DX);
Push(BX);
Push(Temp);
Push(BP);
Push(SI);
Push(DI);
FI;
Flags Affected
None.
Protected Mode Exceptions
#SS(0)
If the starting or ending stack address is outside the stack segment limit.
#PF(fault-code)If a page fault occurs.
#AC(0)
If an unaligned memory reference is made while the current privilege level
is 3 and alignment checking is enabled.