3-539
INSTRUCTION SET REFERENCE
POPF/POPFD—Pop Stack into EFLAGS Register (Continued)
EFLAGS
<
Pop();
(* All non-reserved flags except VIP, VIF, and VM can be modified; *)
(* VIP and VIF are cleared; VM is unaffected*)
ELSE (* OperandSize = 16 *)
EFLAGS[15:0]
<
Pop(); (* All non-reserved flags can be modified; *)
FI;
ELSE (* CPL > 0 *)
IF OperandSize = 32;
THEN
EFLAGS
<
Pop()
(* All non-reserved bits except IOPL, VIP, and VIF can be modified; *)
(* IOPL is unaffected; VIP and VIF are cleared; VM is unaffected *)
ELSE (* OperandSize = 16 *)
EFLAGS[15:0]
<
Pop();
(* All non-reserved bits except IOPL can be modified *)
(* IOPL is unaffected *)
FI;
FI;
ELSE (* In Virtual-8086 Mode *)
IF IOPL=3
THEN IF OperandSize=32
THEN
EFLAGS
<
Pop()
(* All non-reserved bits except VM, RF, IOPL, VIP, and VIF *)
(* can be modified; VM, RF, IOPL, VIP, and VIF are unaffected *)
ELSE
EFLAGS[15:0]
<
Pop()
(* All non-reserved bits except IOPL can be modified *)
(* IOPL is unaffected *)
FI;
ELSE (* IOPL < 3 *)
#GP(0); (* trap to virtual-8086 monitor *)
FI;
FI;
FI;
Flags Affected
All flags except the reserved bits and the VM bit.