影响标志寄存器的指令:add,sub,mul,div,inc,or,and不影响标志寄存器的指令:mov,pop,push。
1.ZF:若操作结果为0,则zf=1
eg:mov ax,1
sub ax,1 (ZF=0)
2.PF:检查1的个数
3.SF:若sf=1,表示操作结果为负数
4.OF(只当进行有符号的运算时,无符号数时会产生进位):当发生溢出时,OF=1。
标识寄存器相关的指令:
adc:带上CF的加法
sub:带上CF的减法
cmp:两个数相减,使标志寄存器发生相应改变,但是两个数不会发生变化
test:对两个数进行and操作,使标志寄存器发生改变,但是这两个数不会改变。
test的一个用法是用来测试一个寄存器是否为空:
eg:
test ax,ax
jz somewhere