汇编 (九) 标志寄存器

本文详细介绍了8086CPU的标志寄存器,包括ZF(零标志位)、PF(奇偶标志位)、SF(符号标志位)、CF(进位/借位标志位)和OF(溢出标志位)的功能。还讨论了adc、sbb、cmp指令的使用以及条件转移指令在无符号数和有符号数比较中的应用,同时提到了DF标志在串传送指令中的作用。
摘要由CSDN通过智能技术生成

8086CPU的标志寄存器,简称flag寄存器,有16位,按位起作用,每一位都有其含义。

结构如图:

 

在8086CPU指令集中,

有的指令执行时影响标志寄存器的,比如add,sub,mul,div,inc,or,and 等,它们大都是运输指令(进行逻辑或算术运算);

有的指令执行对标志寄存器没有影响,比如mov,push,pop,它们大都是传输指令。

 

1.1 ZF标志

ZF为零标志位,其记录相关指令执行后,结果是否为0,如果为0,则zf=1, 否则zf=0.

 

1.2 PF标志

PF为奇偶标志,其记录相关指令执行后,结果的所有bit位中,1的个数是否为偶数。

如果1的个数为偶数,pf=1;如果为奇数,pf=0;

 

1.3 SF标志

SF为符号标志位,记录相关指令执行后,其结果是否为负。

如果结果为负,sf=1; 如果非负,sf=0;

 

计算机中使用补码表示有符号数据,计算机中的一个数据可以看作是有符号数,也可以看作是无符号数。

SF标志,就是CPU对 有符号数 运算结果的一种记录,记录数据的正负。

当我们将数据当作 有符号数 来进行运算的时候,可以通过其得知结果的正负。

当我们将数据当作 无符号数 来运行的时候,SF的值没有意义,虽然相关的指令计算影响了它的值。

也就是说,CPU在执行add等指令的时候,是 必然 会影响到SF标志位的值,至于我们需不需要这种影响,就要看我们如何看待指令所进行的运算了。

 

1.4 CF标志

CF为进位/借位标志位。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值