特别注意******* (1)运算/逻辑指令后对标志寄存器有影响!mov不影响!!!!! (2)mul只影响CF和OF,别的未定义 (3)inc不影响CF位
ZF (zero flag) : 值为0,则zf=1
PF (parity flag): bit中1值的个数为偶数,则pf = 1 (*仅计算结果最低byte/8位bit中1的个数)
SF(sign flag): 负数, sf = 1。(************默认把所有运算当为有符运算)
CF(carry flag): 借位/进位. 当无符号运算时,产生进位或借位,则CF=1。例mov al,0x98; add al,al //mov al,97H sub al,98H (可以看成197h-98h)
OF(overflow flag)溢出。当有符号位运算时,产生超过了该符号位能表示的,OF=1。与CF没有任何关系
sbb/adc 借位减法/加法
cmp的有符号比较和无符号比较。影响SF/OF/CF的情况
ja/b/e对应无符号比较
pushf/popf 将指令寄存器压入栈
DF (Direction flag)。DF=1:SI/DI递减;DF=0则递增
movsb: mov es:[di], byte ptr ds:[si]. (movsd, movsw, movsd 略) 此时若DF=0,则si+= 1, di+= 1。否则si+= -1, di+= -1;
rep movsb = s: movsb loop s
cld: clear direction: df=0; std:set direction: df=1;