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