汇编--10 标志寄存器

10.1
flag寄存器是16位寄存器,他的每一位都有专门的含义,其中使用到的只有0.2.4.6.7.8.9.10.11位有特殊含义。我们主要学习标志位寄存器中的CF PF ZF SF OF DF标志位

10.1.1ZF标志位
flag的第六位是ZF。0标志位,它记录相关指令执行后,其结果是否为0,若果结果为0,那么zf = 1,如果结果不为0,zf = 0.

10.1.2PF标志位
flag的第二位是PF,奇偶标志位,他记录相关指令执行后,其结果的所有bit位中1的个数是否为偶数。如果1的个数为偶数,pf = 1,如果为奇数,那么pf = 0.

10.1.3SF标志位
flag的第七位是SF,符号标志位。他记录相关指令执行后,其结果是否为负。如果结果为负。,sf = 1,如果非负,sf = 0。

10.1.4CF标志位
flag的第0位是CF,进位标志符。一般情况下,在进行无符号数运算的时候,他记录了运算结果的最高有效位向更高位的进位值,或从更高位的借位值。(一般对应溢出情况)

10.1.5OF标志位
flag的第11位是OF,溢出标志位。一般情况下,OF记录了有符号数运算的结果是否发生了溢出。如果发生了溢出,OF = 1,如果没有,OF = 0。

10.1.6 adc指令
adc是带进位加法指令,它利用了CF位上记录的进位值
例如:adc ax,bx 相当于ax = ax + bx + CF

10.1.7sbb指令
sbb是带进位减法指令
sbb ax,bx 实现的功能 ax = ax -bx -cf

10.1.8cmp指令
cmp是比较指令,cmp的功能相当于减法指令,只是不保存结果
cmp指令格式 cmp 操作对象1,操作对象2
功能:计算操作对象1-操作对象2,但不保存结果,只对标志寄存器进行更改
cmp ax,bx
(1)如果ax = bx 则ax -bx = 0,所以zf = 1
(2)如果ax!=bx 则ax - bx!= 0,所以zf = 0
(3)ax

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值