1. 程式人生 > >組合語言_標誌位介紹

組合語言_標誌位介紹

一、運算結果標誌位
1、進位標誌CF(Carry Flag)
進位標誌CF主要用來反映運算是否產生進位或借位。如果運算結果的最高位產生了一個進位或借位,那麼,其值為1,否則其值為0。

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


2、奇偶標誌PF(Parity Flag)
奇偶標誌PF用於反映運算結果中“1”的個數的奇偶性。如果“1”的個數為偶數,則PF的值為1,否則其值為0。

利用PF可進行奇偶校驗檢查,或產生奇偶校驗位。在資料傳送過程中,為了提供傳送的可靠性,如果採用奇偶校驗的方法,就可使用該標誌位。


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

在發生下列情況時,輔助進位標誌AF的值被置為1,否則其值為0:

(1)、在字操作時,發生低位元組向高位元組進位或借位時;
(2)、在位元組操作時,發生低4位向高4位進位或借位時。

對以上6個運算結果標誌位,在一般程式設計情況下,標誌位CF、ZF、SF和OF的使用頻率較高,而標誌位PF和AF的使用頻率較低。


4、零標誌ZF(Zero Flag)
零標誌ZF用來反映運算結果是否為0。如果運算結果為0,則其值為1,否則其值為0。在判斷運算結果是否為0時,可使用此標誌位。

5、符號標誌SF(Sign Flag)
符號標誌SF用來反映運算結果的符號位,它與運算結果的最高位相同。在微機系統中,有符號數採用補碼錶示法,所以,SF也就反映運算結果的正負號。運算結果為正數時,SF的值為0,否則其值為1。


6、溢位標誌OF(Overflow Flag)
溢位標誌OF用於反映有符號數加減運算所得結果是否溢位。如果運算結果超過當前運算位數所能表示的範圍,則稱為溢位,OF的值被置為1,否則,OF的值被清為0。

“溢位”和“進位”是兩個不同含義的概念,不要混淆。如果不太清楚的話,請查閱《計算機組成原理》課程中的有關章節。


二、狀態控制標誌位
狀態控制標誌位是用來控制CPU操作的,它們要通過專門的指令才能使之發生改變。

1、追蹤標誌TF(Trap Flag)
當追蹤標誌TF被置為1時,CPU進入單步執行方式,即每執行一條指令,產生一個單步中斷請求。這種方式主要用於程式的除錯。

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


2、中斷允許標誌IF(Interrupt-enable Flag)
中斷允許標誌IF是用來決定CPU是否響應CPU外部的可遮蔽中斷髮出的中斷請求。但不管該標誌為何值,CPU都必須響應CPU外部的不可遮蔽中斷所發出的中斷請求,以及CPU內部產生的中斷請求。具體規定如下:

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

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

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


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

三、32位標誌暫存器增加的標誌位
1、I/O特權標誌IOPL(I/O Privilege Level)
I/O特權標誌用兩位二進位制位來表示,也稱為I/O特權級欄位。該欄位指定了要求執行I/O指令的特權級。如果當前的特權級別在數值上小於等於IOPL的值,那麼,該I/O指令可執行,否則將發生一個保護異常。


2、巢狀任務標誌NT(Nested Task)
巢狀任務標誌NT用來控制中斷返回指令IRET的執行。具體規定如下:

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

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


3、重啟動標誌RF(Restart Flag)
重啟動標誌RF用來控制是否接受除錯故障。規定:RF=0時,表示“接受”除錯故障,否則拒絕之。在成功執行完一條指令後,處理機把RF置為0,當接受到一個非除錯故障時,處理機就把它置為1。

4、虛擬8086方式標誌VM(Virtual 8086 Mode)
如果該標誌的值為1,則表示處理機處於虛擬的8086方式下的工作狀態,否則,處理機處於一般保護方式下的工作狀態。

相關推薦

組合語言_標誌介紹

一、運算結果標誌位1、進位標誌CF(Carry Flag)進位標誌CF主要用來反映運算是否產生進位或借位。如果運算結果的最高位產生了一個進位或借位,那麼,其值為1,否則其值為0。使用該標誌位的情況有:多字(位元組)數的加減運算,無符號數的大小比較運算,移位操作,字(位元組)之間移位,專門改變CF值的指令等。2

嵌入式微控制器,外部中斷,中斷標誌介紹

body, table{font-family: 微軟雅黑; font-size: 13.5pt} table{border-collapse: collapse; border: solid gray; border-width: 2px 0 2px 0;}

嵌入式單片機,外部中斷,中斷標誌介紹

由於 wid table 應該 暫停 外部中斷 lar 電平觸發 int body, table{font-family: 微軟雅黑; font-size: 13.5pt} table{borde

80x86組合語言基礎標誌

RFLAGS(64位)將EFLAGS(32位)擴充套件到64位,新擴充套件的高32位全部保留未用。 RFLAGS(32位)由3類(S: Status flag,C: Control flag,X: System flag)標誌位組成:    63-32        31-22      21    20 

組合語言--微機CPU的指令系統(五)(標誌操作指令)

(2)標誌位操作指令 標誌位操作指令是一組對標誌位置位、復位、儲存和恢復等操作的指令。 1、進位CF操作指令 Ø 清進位指令CLC(Clear Carry Flag):CF←0 Ø 置進位指令STC(Set Carry Flag):CF←1 Ø 進位取反指令CMC(Complement Carry

程式設計基礎_設定標誌

C#控制檯程式,新增標誌位來實現選擇。很基礎的思想,卻很重要,特別是在對程式進行小修改的時候。using System; using System.Collections.Generic; using System.Linq; using System.Text; nam

各種標誌的含義

含義 程序員 重啟 課程 奇偶校驗位 有符號 lag err 屏蔽 一、運算結果標誌位 1、進位標誌CF(Carry Flag) 進位標誌CF主要用來反映運算是否產生進位或借位。如果運算結果的最高位產生了一個進位或借位,那麽,其值為1,否則其值為0。 使用該標誌位的情況有:

在模塊中如何去寫輸出標誌的程序

.... shift info jpg spa 命名 done fff 標誌位 在給標誌信號命名時,標誌位命名為...._sig表示,,比如shift_done_sig 表示。。。的標誌位在程序中怎麽寫輸出標誌位 兩種方法: 1.先不帶標誌位仿真,判斷輸入到輸出需要幾個時鐘

匯編-寄存器數據的存儲與變化-算術運算對標誌的影響

位操作 https IE 都是 AS -a 內容 text 存在 實驗3:寄存器數據的存儲與變化-算術運算對標誌位的影響 1.項目設計 將操作數放在2000H和2001H兩個單元中,編程進行以下的算術運算 ,並記錄標誌位的狀態。 (1)41H+3BH,結果放在2002H單元

ETL工具kettle怎麽進行增量數據抽取:一、通過標誌

text term ESS log 繼續 需要 roc 默認值 RoCE 在平時的操作過程中可能大家需要經常進行增量的數據抽取,方法有很多種,接下來幾天講給大家介紹幾種我本人經常使用的幾種方式;首先給大家介紹我最喜歡的一種,就是通過標誌位;操縱方法如下,在源表中增加一個標識

rsync增量同步標誌詳細解釋

value req special amp 解釋 mis have scenarios diff rsync非常強大,下面是我用rsync做目錄備份時用到的參數: rsync -ruPi -plEt /home/op/photo/ /remote_backup/photo/

常用匯編指令及其影響的標誌

說明 比較 cxz 個數 test car size through with 加法指令 ADD (addition) 指令對標誌位的影響: CF=1 最高有效位向高位有進位 CF=

15、枚舉類型和標誌

就是 tps 十進制數 運算符 沒有 blog tails too 進行 G常規 D十進制 X十六進制myControl.Style =?Styles.ShowBorder |?Styles.ShowCaption;??這時myControl.Style枚舉的值將變成 1+

交易教程:加密貨幣行情支撐和阻力介紹

如果你是一個加密貨幣交易者,在一個不穩定的加密市場中掙扎著,找的到立足點嗎? 如果是,那麼你首先需要掌握的就是識別和抵抗蠱惑性的流言和新聞。 想象一下在你的房子裡跳球。有兩個屏障可以限制球的飛行和墜落——你的地板和天花板。在交易中,有類似的障礙限制了被稱為支援和抵制的價格行動的移動。 這

TCP標誌syn,ack,fin以及序列號(seq),響應號(ack)

一,三次握手 TCP使用三次握手建立一個連線: 第一次握手:客戶端傳送SYN包至伺服器,並進入SYN_SENT狀態,等待伺服器確認 第二次握手:伺服器收到客戶端的SYN包,傳送一個ACK,同時傳送自己的SYN,此時伺服器進入SYN_RCVD狀態

【微機彙編】dosbox中debug的標誌

debug中的標誌位顯示順序  OF DF IF SF ZF AF PF CF OF 標誌位(溢位)  OF = 1, 顯示為OV  OF = 0, 顯示為NV  影響OF的指令舉例, INC DF 標誌位(方向)  DF = 0, 顯示為U

第012課 彙編-af,zf,sf,of及標誌操作指令

AF,ZF,SF,OF 標誌傳送指令 內容綱要 1.AF,ZF,OF 2.LAHF,SAHF 3.PUSHF,POPF 4.PUSHFD,POPFD 5.STC,CLC,STD,CLD,CMC 6.32位,16位和8位暫存器 詳細內容 1.AF

組合語言_實驗五_編寫、除錯具有多個段的程式

四、實驗結論   (1) ①data段中資料為 23 01 56 04 89 07 bc 0a ef 0d ed 0f ba 0c 87 09 ②cs=076C、ss=076B、ds=076A ③X-2,X-1 (2) ①data段中資料為 23 01 56 04 00 00 00 0

逆向中標誌的學習

標誌位分別對應在第幾位,如下 11    7     6     4     2     0 OF  SF

python中多執行緒中event的使用-----------------即一個靈活的方法標誌,類似於java的等待喚醒機制(python與java不同的地方)

event是python中一個特有的標誌位方法,他一共有三種方法 1.event.wait():如果標誌位設定了,它不做任何事,如果沒有設定,則將會鎖住,等待標誌位的設定 2.event.set():設定標誌位 3.event.clear():清除標誌位 這一種機制很