彙編標誌位簡介

標誌(Flag)用於反映指令執行結果或控制指令執行形式,是彙編語言程序設計中必須特別注意的一個方面。許多指令執行以後將影響有關的標誌位,同時很多指令的執行要利用某些標誌。所以咱們在學習使用匯編語言的過程當中必須瞭解標誌位。程序員

1、狀態標誌

一、進位標誌CF(Carry Flag)

進位標誌CF主要用來反映運算是否產生進位或借位。若是運算結果的最高位產生了一個進位或借位,那麼,其值爲1,不然其值爲0。編程

使用該標誌位的狀況有:多字(字節)數的加減運算,無符號數的大小比較運算,移位操做,字(字節)之間移位,專門改變CF值的指令等。學習

二、奇偶標誌PF(Parity Flag)

奇偶標誌PF用於反映運算結果中「1」的個數的奇偶性。若是「1」的個數爲偶數,則PF的值爲1,不然其值爲0。設計

利用PF可進行奇偶校驗檢查,或產生奇偶校驗位。在數據傳送過程當中,爲了提供傳送的可靠性,若是採用奇偶校驗的方法,就可以使用該標誌位。指針

三、輔助進位標誌AF(Auxiliary Carry Flag)

在發生下列狀況時,輔助進位標誌AF的值被置爲1,不然其值爲0:調試

(1)在字操做時,發生低字節向高字節進位或借位時;
(2)在字節操做時,發生低4位向高4位進位或借位時。blog

對以上6個運算結果標誌位,在通常編程狀況下,標誌位CF、ZF、SF和OF的使用頻率較高,而標誌位PF和AF的使用頻率較低。字符串

四、零標誌ZF(Zero Flag)

零標誌ZF用來反映運算結果是否爲0。若是運算結果爲0,則其值爲1,不然其值爲0。在判斷運算結果是否爲0時,可以使用此標誌位。get

五、符號標誌SF(Sign Flag)

符號標誌SF用來反映運算結果的符號位,它與運算結果的最高位相同。在微機系統中,有符號數採用補碼錶示法,因此,SF也就反映運算結果的正負號。運算結果爲正數時,SF的值爲0,不然其值爲1。博客

六、溢出標誌OF(Overflow Flag)

溢出標誌OF用於反映有符號數加減運算所得結果是否溢出。若是運算結果超過當前運算位數所能表示的範圍,則稱爲溢出,OF的值被置爲1,不然,OF的值被清爲0。

「溢出」和「進位」是兩個不一樣含義的概念,不要混淆。若是不太清楚的話,請查閱《計算機組成原理》課程中的有關章節。

2、控制標誌

控制標誌位是用來控制CPU操做的,它們要經過專門的指令才能使之發生改變。

一、追蹤標誌TF(Trap Flag)

當追蹤標誌TF被置爲1時,CPU進入單步執行方式,即每執行一條指令,產生一個單步中斷請求。這種方式主要用於程序的調試。

指令系統中沒有專門的指令來改變標誌位TF的值,但程序員可用其它辦法來改變其值。

二、中斷容許標誌IF(Interrupt-enableFlag)

中斷容許標誌IF是用來決定CPU是否響應CPU外部的可屏蔽中斷髮出的中斷請求。但無論該標誌爲什麼值,CPU都必須響應CPU外部的不可屏蔽中斷所發出的中斷請求,以及CPU內部產生的中斷請求。具體規定以下:

(1)、當IF=1時,CPU能夠響應CPU外部的可屏蔽中斷髮出的中斷請求;

(2)、當IF=0時,CPU不響應CPU外部的可屏蔽中斷髮出的中斷請求。

CPU的指令系統中也有專門的指令來改變標誌位IF的值。

三、方向標誌DF(DirectionFlag)

方向標誌DF用來決定在串操做指令執行時有關指針寄存器發生調整的方向。具體規定在第5.2.11節——字符串操做指令——中給出。在微機的指令系統中,還提供了專門的指令來改變標誌位DF的值。

3、32位標誌寄存器增長的標誌位

一、I/O特權標誌IOPL(I/O Privilege Level)

I/O特權標誌用兩位二進制位來表示,也稱爲I/O特權級字段。該字段指定了要求執行I/O指令的特權級。若是當前的特權級別在數值上小於等於IOPL的值,那麼,該I/O指令可執行,不然將發生一個保護異常。

二、嵌套任務標誌NT(Nested Task)

嵌套任務標誌NT用來控制中斷返回指令IRET的執行。具體規定以下:

(1)、當NT=0,用堆棧中保存的值恢復EFLAGS、CS和EIP,執行常規的中斷返回操做;

(2)、當NT=1,經過任務轉換實現中斷返回。

三、重啓動標誌RF(Restart Flag)

重啓動標誌RF用來控制是否接受調試故障。規定:RF=0時,表示「接受」調試故障,不然拒絕之。在成功執行完一條指令後,處理機把RF置爲0,當接受到一個非調試故障時,處理機就把它置爲1。

四、虛擬8086方式標誌VM(Virtual 8086 Mode)

若是該標誌的值爲1,則表示處理機處於虛擬的8086方式下的工做狀態,不然,處理機處於通常保護方式下的工做狀態。

 

做者:耑新新,發佈於  博客園  

轉載請註明出處,歡迎郵件交流:zhuanxinxin@foxmail.com

相關文章
相關標籤/搜索