注意:
mov,push,pop等传送指令,执行结果对标志寄存器并无影响!
ZF标志:结果为0,则ZF为1;不为0,ZF为0;(zero flag)
PF标志:如果1的个数为偶数,pf=1;如果为奇数,那么pf=0;
SF标志:结果为负,则SF为1;结果非负数,SF为0
CF标志:是对无符号数运算有意义的标志位【看有无进位】
OF标志:对有符号数运算有意义的标志位【看有无溢出】
监测点11.1:
sub al,al al=0h ZF=1 PF=1 SF=0
al为0h,结果为0所以ZF为1代表真,有0个偶数所以PF为1,结果为非负,所以SF为0。当我们把数据当做无符号数来计算,SF位的值没有意义。
mov al,1 al=1h ZF=1 PF=1 SF=0
mov是传送指令对标志寄存器没有影响,标志寄存器不发生改变。
push ax ax=1h ZF=1 PF=1 SF=0
push是传送指令对标志寄存器没有影响,标志寄存器不发生改变。
pop bx bx=1h ZF=1 PF=1 SF=0
pop是传送指令对标志寄存器没有影响,标志寄存器不发生改变。
add al,bl al=2h ZF=0 PF=0 SF=0
2h的二进制为0010 ,结果不为0则ZF为0,奇数个1则PF为0,SF为0
add al,10 al=12h ZF=0 PF=1 SF=0
12h的二进制为10010,这是8位寄存器所以值为0010,结果不为0则ZF为0,偶数个1则PF为1,SF为0
mul al ax=144h ZF=0 PF=1 SF=0
144h的二进制为101000100,这是16位寄存器所以值为01000100,结果部位0则ZF为0,偶数个1则PF为1,SF为0