<<<    Index    >>>
3-588
INSTRUCTION SET REFERENCE
PUSHF/PUSHFD—Push EFLAGS Register onto the Stack 
(Continued)
Operation
IF (PE=0) OR (PE=1 AND ((VM=0) OR (VM=1 AND IOPL=3)))
(* Real-Address Mode, Protected mode, or Virtual-8086 mode with IOPL equal to 3 *)
THEN
IF OperandSize = 32
THEN 
push(EFLAGS AND 00FCFFFFH);
(* VM and RF EFLAG bits are cleared in image stored on the stack*)
ELSE 
push(EFLAGS); (* Lower 16 bits only *)
FI;
ELSE (* In Virtual-8086 Mode with IOPL less than 0 *)
#GP(0); (* Trap to virtual-8086 monitor *)
FI;
Flags Affected
None.
Protected Mode Exceptions
#SS(0)
If the new value of the ESP register is outside the stack segment boundary. 
#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.
Real-Address Mode Exceptions
None.
Virtual-8086 Mode Exceptions
#GP(0)
If the I/O privilege level is less than 3.
#PF(fault-code)If a page fault occurs.
#AC(0)
If an unaligned memory reference is made while alignment checking is
enabled.
<<<    Index    >>>