8086標誌暫存器中標誌的作用,通過示例說明如何設定標誌位的值以及設定標

2021-08-04 21:34:22 字數 1842 閱讀 7911

1樓:匿名使用者

標誌暫存器只有低八位是可操作的,使用lahf,將標誌暫存器中的低八位的值送到ah中

sahf,將ah中的內容送到標誌暫存器中的低八位使用復位鍵,可以將標誌暫存器中的所有位全部清零cli,sti,分別是if位清零和置1

clc,stc,分別是cf位清零和置1

cld,std,分別是df位清零和置1

以上說的是8086/8088系統中的彙編指令

2樓:

運算結果標誌位

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的值。

彙編標誌暫存器,進位與借位的理解

1.進位 假設a暫存器是8位的,最大的數是 11111111 現在加1,應該變成 100000000 但只能放8位,怎麼辦?用cf參與進來,a中則放 00000000 2.借位 道理一樣.計算機中是補碼運算的,減法是用補碼加法來實現,所以就內部而言只有進位一說,都是有則置位cf,沒有則置零cf。但對...

圖中標誌的含義是確定主標誌規定區間距離為前方200米以外的路段

箭頭指示方向,向上是往前,還有向左,向右。這個標誌意思是200m以內,不是200m以外。如果是200m以外,那到 是盡頭呢,想要多遠要多遠,肯定不行。圖中交通標誌的含義是確定主標誌規定區間距離為前方200米以外的路段。請問這錯在什麼地方?應該都是200米以內,以外的就不叫區間距離了 什麼是 確定主標...

可以從8253的暫存器中讀出減計數器的值A 控制暫存器 B 計數初值暫存器 C 減計數單元

答案是d。8253中有三個完全相同的計數器,每個計數器裡有三個暫存器 計數初值暫存器,減1計數器和當前計數值鎖存器。8252開始工作前,先把計數初值裝入計數初值暫存器和減1計數器,開始計數時,減1計數器的值隨著時鐘脈衝的到來進行減1計算,而計數初值暫存器的值保持不變。當前計數值鎖存器,鎖存的是減1計...