8086标志寄存器介绍及作用(未完)
標志寄存器結構:
寄存器分類:
狀態標志:CF(無符),PF,AF (無符),ZF,SF (有符),OF (有符)
控制標志:TF,IF,DF
1、CF標志(carry flag)
進位標志位
記錄無符號運算時的進位或借位,便于多位數的加減運算
CF=NC/0,說明上一步操作無進位或借位
CF=CY/1,說明上一步操作有進位或借位
2、PF標志(parity flag)
奇偶標志位
記錄上一次操作結果二進制位中1的個數
PF=PO/0,1的個數為奇數個
PF=PE/1,1的個數為偶數個
3、AF標志(auxiliary flag)
輔助進位
AF=NA/0,說明上一步操作無進位或借位
AF=AC/1,說明上一步操作有進位或借位
4、ZF標志(zero flag)
零標志位
記錄上一次操作結果是否為0
ZF==NZ/0,上一次操作結果為非0
ZF=ZR/1,上一次操作結果為0
5、SF標志(sign flag)
符號標志位
記錄上一次有符號數操作結果是否為負
SF==PL/0,上一次操作結果為非0
SF=NG/1,上一次操作結果為0
6、OF標志(over flaw flag)
溢出標志位
記錄上一次有符號數加減運算的溢出
OF=NV/0,上一次有符號運算未溢出
OF=OV/1,上一次有符號運算溢出
7、IF標志(interrupt flag)
允許中斷標志位
待補充
8、DF標志(direction flag)
方向標志位
待補充
9、TF標志(待補充)
運算符對標志寄存器的影響:
1、add:加法指令(CF,SF,PF,ZF,AF,OF)
有符號數的加法在加法器通過補碼進行計算,其在CPU內部運算的規則與無符號數加法相同,所以在CPU內部執行一次加法指令,既可以看作是有符號數的加法,也可以看作是無符號數的加法
所以加法指令既影響CF(無符號),也影響SF(有符號)
2、sub:減法指令
與加法指令相同
3、adc:進位加法指令
與加法指令相同
此外進位加法的實現還用到了CF
4、sbb:借位減法指令
與加法指令相同
此外借位減法的實現還用到了CF
5、cmp:比較指令
cmp可看作兩操作數相減(但cmp實際不改變目標寄存器或內存單元的數據)
cmp a,b
ZF:0標志位
CF(無符號 ):進(借)位標志位
SF(有符號):符號標志位
OF(有符號):溢出標志位
將a-b看作是無符號數運算
ZF=0:a=b
CF=0:a>=b
CF=1:a<b
將a-b看作是有符號數運算
ZF=0:a=b
OF=0,SF=0(無溢出,結果為正):a>=b
OF=0,SF=1(無溢出,結果為負):a<b
OF=1,SF=0(有溢出,結果為正):a<b
OF=1,SF=1(有溢出,結果為負):a>b
6、and與指令、or或指令、nor異或指令
鏈接
總結
以上是生活随笔為你收集整理的8086标志寄存器介绍及作用(未完)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 8086CPU写汇编的规则
- 下一篇: 对移码满足二进制减法的小思考