80x86組合語言基礎標誌位篇
RFLAGS(32位)由3類(S: Status flag,C: Control flag,X: System flag)標誌位組成:
63-32 31-22 21 20 19 18 17 16
| RFlags保留 | EFlags保留 | ID | VIP | VIF | AC | VM | RF |
15 14 13-12 11 10 9 8 7 6 5 4 3 2 1 0
| | NT | IOPL | OF | DF | IF | TF | SF | ZF | | AF | | PF | | CF |
System flag:
ID:Identification(Pentium+)。
VIP:Virtual interrupt pending(Pentium+)。
VIF:Virtual interrupt flag (Pentium+)。
AC:Alignment check (486SX+ only)。
VM:Virtual 8086 mode flag (386+ only)
RF:Resume flag (386+ only)。
IOPL:I/O privilege level (286+ only)。
NT:Nested task flag (286+ only)。
IF:(Interrupt Flag)中斷標誌,當IF為1(EI)時,允許中斷,否則IF為0(DI)關閉中斷。
TF:(Trap Flag)陷井標誌,用於單步方式操作,當TF為1時,每條指令執行完後產生陷井,由系統控制計算機;當IF為0時,CPU正常工作不產生陷井。
Control flag:
DF:(Direction Flag)方向標誌,在串處理指令中控制處理資訊的方向用,當DF置1(DN)每次操作後,使變址暫存器SI和DI減量,這樣就使串處理從高地址向低地址方向處理。當DF置0(UP)時,則反之。
Status flag:
條件碼標誌有:
OF:(Overflow Flag)溢位標誌,在運算過程中,如運算元超出了機器能表示的範圍則稱為溢位。此時OF標誌位為1(OV),否則置0(NV)。
SF:(Sign Flag)符號標誌,記錄運算結果的符號,結果為負時置1(NG),否則置0(PL)。
ZF:(Zero Flag)零標誌,運算結果為0時置1(ZR),否則置0(NZ)。
CF:(Carry Flag)進位標誌,運算時,從最高有效位產生了進位值時0時置1(CY),否則置0(NC)。
AF:(Auxiliary carry Flag)輔助進位標誌,記錄運算時最低的4位(半個位元組)產生的進位值。有進位值時置1否(AC),則置0(NA)。
PF:(Parity Flag)奇偶標誌,用來為機器中傳送資訊時可能產生的程式碼出錯情況提供檢驗條件,當結果運算元中1的個數為偶數時置1(PE),否則置0(PO)。