16.02.2013 Aufrufe

24531904_j

24531904_j

24531904_j

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

POPF/POPFD—Pop Stack into EFLAGS Register ( 続き )<br />

FI;<br />

FI;<br />

IF CPL=0<br />

THEN<br />

IF OperandSize = 32;<br />

THEN<br />

EFLAGS ← Pop();<br />

(* All non-reserved flags except VM, RF, VIP and VIF can be *)<br />

(* modified; *)<br />

ELSE (* OperandSize = 16 *)<br />

EFLAGS[15:0] ← Pop(); (* All non-reserved flags can be modified; *)<br />

FI;<br />

ELSE (* CPL > 0 *)<br />

IF OperandSize = 32;<br />

THEN<br />

EFLAGS ← Pop()<br />

(* All non-reserved bits except IOPL, RF, VM, VIP, and VIF can *)<br />

(* be modified; *)<br />

(* IOPL is masked *)<br />

ELSE (* OperandSize = 16 *)<br />

EFLAGS[15:0] ← Pop();<br />

(* All non-reserved bits except IOPL can be modified; IOPL is masked *)<br />

FI;<br />

FI;<br />

ELSE (* In Virtual-8086 Mode *)<br />

IF IOPL=3<br />

THEN<br />

IF OperandSize=32<br />

THEN<br />

EFLAGS ← Pop()<br />

(* All non-reserved bits except VM, RF, IOPL, VIP, and VIF *)<br />

(* can be modified; VM, RF, IOPL, VIP, and VIF are masked*)<br />

ELSE<br />

EFLAGS[15:0] ← Pop()<br />

(* All non-reserved bits except IOPL can be modified; IOPL is *)<br />

(* masked *)<br />

FI;<br />

ELSE (* IOPL < 3 *)<br />

IF CR4.VME = 0<br />

THEN #GP(0);<br />

ELSE<br />

IF ((OperandSize = 32) OR (STACK.TF = 1) OR (EFLAGS.VIP = 1<br />

AND STACK.IF = 1)<br />

THEN #GP(0);<br />

ELSE<br />

TempFlags

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!