1、
8086CPU的标志寄存器有16位,其中存储的信息通常被称为程序状态字(PSW)
8086CPU的flag寄存器结构:
1 3 5 12 13 14 15位在8086CPU中没有使用,不具有任何意义
0 2 4 6 7 8 9 10 11都具有特殊的含义
2、ZF标志(zero flag)
flag的第6位是ZF,零标志位
它记录相关指令执行后
结果为0, ZF = 1
结果不为0,ZF = 0
mov ax,1 sub ax,1 结果为0,ZF = 1
3、PF标志,奇偶标志位
他记录指令执行后,结果的所有二进制位中1的个数
为偶数,PF = 1
为奇数,PF = 0
4、符号位0代表+ 1代表-
100 000 01就相当于 -127
5、SF标志,符号标志位
它记录执行指令后
结果为负 SF = 1
结果为正 SF = 0
6、CF标志,进位标志位
mov al,98
mov al,al
这样就会产生进位,我们的寄存器不会将进位直接丢掉,而是在寄存器中保存是否进位
7、OF标志,溢出标志位、
溢出只是针对于有符号数而言
进位是针对于无符号数来说的
8、adc指令,是带进位的加法指令,它利用了CF位上记录的进位值
adc ax,bx
(ax)=(ax)+(bx)+CF
9、sbb指令 sbb是带借位减法指令,他利用了CF位上记录的借位值
sbb ax,bx
(ax) = (ax) - (bx) - CF
10、