標志寄存器的狀態標志


百度百科說明https://baike.baidu.com/item/%E7%8A%B6%E6%80%81%E6%A0%87%E5%BF%97/2186277?fr=aladdin#5

狀態標志是16位標志寄存器PSW用來存放運算結果的特征,常用作后續條件轉移指令的轉移控制條件。其中7位沒用,9位標志位分成兩類:一類為狀態標志,表示運算后結果的狀態特征,它影響后面的操作。狀態標志有CF PF AF ZF SF和OF等6個。另一類為控制標志,用來控制CPU操作,控制標志有TF IF和DF等3個。 狀態標志位記錄了算術和邏輯運算的一些特征。如:結果是否為0,是否有進位,借位,結果是否溢出等。不同指令對標志位具有不同的影響。

進位標志位(CF)

當進行加(減)法運算時,若最高位向前有進(借)位,則CF=1,否則CF=0。

奇偶標志位(PF)

當運算結果中的“1”的個數為偶數時PF=1,為奇數時,PF=0。

輔助進位(AF)

在加(減)法操作中,bit3向bit4有進位(借位)發生時,AF=1,否則AF=0。DAA和DAS指令測試這個標志位,以便在BCD加法或減法之后調整AL中的值。
1字節為8bit 對應為 bit7|bit6|bit5|bit4 bit3|bit2|bit1|bit0 前四個為高4位,后四個為低4位

零標志位(ZF)

當運算結果為零時ZF=1,否則ZF=0。

符號標志位(SF)

當運算結果的最高位為1時SF=1,否則SF=0。

溢出標志位(OF)

當算術運算結果超出了帶符號數的范圍,即溢出時,OF=1,否則OF=0.
 
 
上一道例題:
 
某機器有一個標志寄存器,其中有進位/借位標志CF、零標志ZF、符號標志SF和溢出標志OF,條件轉移指令bgt(無符號整數比較大於時轉移)的轉移條件是
A.CF+OF=1              B./ SF+ ZF =1            
C. / (CF+ ZF) =1             D./ (CF+ SF) =1

判斷無符號整數A>B成立,滿足的條件是結果不等於0,即零標志ZF=0,且不發生 進位,即進位/借位標志CF=0。所以正確選項為C。其余選項中用到了符號標志SF和溢出標志OF,顯然可以排除掉

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM