标志寄存器
标志寄存器和其他寄存器不同,其他的寄存器是用来存放数据的,整个寄存器具有一个含义
而标志寄存器是按位起作用的,也就是说,它的每一位都有专门的含义,记录特定的信息
1,3,5,12,13,14,15位没有使用,不具有任何意义
而0,2,4,6,7,8,9,10,11位都具有特殊的含义
ZF标志:
ZF标志:第六位,零标志位,对结果取反
mov ax, 1
sub ax, 1
指令执行后,结果为0.则ZF = 1
mov ax, 2
sub ax, 1
指令执行后,结果为1.则ZF = 0
PF标志:
PF标志:第二位,奇偶标志位,记录执行指令后,结果的所有二进制位中1的个数
为偶数:PF = 1
为奇数:PF = 0
SF标志:
sF标志:第七位,符号标志位,记录指令执行后
结果为负,SF = 1
结果为正,SF = 0
CF标志:
CF标志:第零位,进位标志位
无符号数运算时产生,是否产生进位。
OF标志:
溢出:进行有符号运算的时候,结果超过机器所能表达的范围
adc标志:
adc是带进位加法指令,利用了CF位上记录的进位值
格式:
adc 操作对象1, 操作对象2
结果:操作对象1 = 操作对象1 + 操作对象2 + CF
sbb标志:
sbb指令:带借位减法指令,利用了CF位上记录的借位值
格式:
sbb 操作对象1, 操作对象2
结果:操作对象1 = 操作对象1 - 操作对象2 - CF
cmp标志:
cmp指令:比较指令,相当于减法指令,只是不保存结果。执行后将对标志寄存器产生影响
格式:
cmp 操作对象1, 操作对象2
结果:操作对象1 = 操作对象1
DF标志:
DF标志:第十位,方向标志位,在串处理指令中,控制每次操作后si,di的增减
DF = 0,每次操作后si,di递增
Df = 1,每次操作后si,di递减
格式:movsb / movsw