組合語言各「標誌位」含義

2021-10-10 22:13:32 字數 2298 閱讀 5083

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)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方式下的工作狀態,否則,處理機處於一般保護方式下的工作狀態。

組合語言Assemble標誌位

zf 零標誌位 1結果為0 0結果為1 pf奇偶標誌位 1結果二進位制表示中有偶數個1 0結果二進位制表示中有奇數個1 sf符號標誌位 1結果為負 最高位為1 0結果為正 最高位為0 cf進製標誌位 1產生進製或者借位 0不產生進製或者借位 of溢位標誌位 1發生溢位 0不發生溢位 of overf...

彙編標誌位

of overflow flag 溢位標誌 運算元超出機器能表示的範圍表示溢位,溢位時為1.sf sign flag 符號標誌 記錄運算結果的符號,結果負時為1.zf zero flag 零標誌 運算結果等於0時為1,否則為0.cf carry flag 進製標誌 最高有效位產生進製時為1,否則為0...

組合語言 標誌暫存器

8086cpu的flag暫存器的結構如下所示。1,3行為標誌名,2,4行為位數。ofdf iftf 1514 1312 111098 sfzf afpfcf7 6543 210zf標誌 記錄相關指令執行後,其結果是否為0。pf標誌 記錄相關指令執行後,其結果的所有bit位中1的個數是否為偶數。of標...