8086/8088CPU內部控制寄存器

控制存器有IP和FLAGS
FLAGS稱爲標誌寄存器或程序狀態寄存器(PSW),雖然有16位,但是隻使用其中9位(標誌寄存器中的空位有什麼作用嗎),其中包括6個狀態標誌位和3個控制標誌

6個狀態標記位

狀態標記符記錄了算術邏輯運算的結果特徵,如溢出、進位等

CF(Carry flag) 進位標誌位
PF(Parity flag) 奇偶標誌位
AF(Auxiliary carry flag) 輔助進位標誌位
ZF(Zero flag) 零標誌位
SF(Sign flag) 符號標誌位
OF (Overflow flag) 溢出標誌位

CF:當最高位向前有借位或進位時CF=1,否則爲 0;
該標誌位可用於多字(字節)數的加減運算。
PF:運算結果的低8位中1中個數爲偶數個時PF=1,否則爲 0
AF:運算時D3向D4位有進位或借位時AF=1,否則爲 0
ZF:運算結果爲0時ZF=1,否則爲 0
判斷運算結果是否爲0時,可使用此標誌位。
SF:運算結果最高位爲1時SF=1,否則爲 0
OF:運算結果超出了帶符號數的範圍,即溢出時OF=1,否則爲 0
注意區別OF和CF,OF只是對有符號數運算而言,CF是對無符號數運算有意義的標誌位,而OF是對有符號數運算有意義的標誌位。

3個控制標誌位

控制標誌符用於設置控制條件,控制CPU操作,使用專門指令才能改變。

TF 陷阱標誌位
IF 中斷允許標誌位
DF 方向標誌位

TF:TF=1時,處理器處於調試特性,CPU處於單步執行指令的工作方式。每執行一條指令後產生一次單步中斷。
IF:F=1時,使CPU可響應CPU外部的可屏蔽的中斷請求;IF=0使CPU禁止響應CPU外部的可屏蔽狀態中斷請求。
DF:在執行串操作指令時控制操作方向,DF=1時,按減地址方向進行,即從高地址向低地址操作;DF=0時,反之。

參考資料:
http://netclass.csu.edu.cn/NCourse/hep094/homepage/flags2.htm(各種標誌位的含義)
http://www.cppblog.com/luqingfei/archive/2010/08/04/122171.aspx(標誌寄存器)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章