欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

8086标志寄存器介绍及作用(未完)

发布时间:2024/4/18 编程问答 74 豆豆
生活随笔 收集整理的这篇文章主要介绍了 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标志寄存器介绍及作用(未完)的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。