ZF标志
- 零标志位,它记录相关指令执行后,其结果是否为0.如果结果为0,那么zf=1,反之,则zf=0.
- 影响zf标志的大都是运算指令。
PF标志
- 奇偶标志位,它记录相关指令执行后,其结果的所有bit位中1的个数是否位偶数。如果1的个数为偶数,pf=1,如果为奇数,那么pf=0.
SF标志
- 符号标志位,它记录相关指令执行后 ,其结果是否为负。如果结果为负,sf=1;如果非负,sf=0.
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的功能相当于减法指令,只是不保存结果。cmp指令执行后,将对标志寄存器产生影响。
cmp指令格式:cmp 操作对象1,操作对象2:
功能:计算 操作对象1 - 操作对象2 但并不保存结果
DF标志和串传送指令
- 方向标志位,在串处理指令中,控制每次操作后si、di的增减。
- df=0–每次操作后si、di递增;
- df=1–每次操作后si、di递减。
串传送指令:movsb
功能:1、((es)*16+(di)) = ((ds)*16+(si))
2、如果df=0则:(si)=(si)+1 (di) = (di)+1
3、如果df=0则:(si)=(si)-1 (di) = (di)-1
pushf 和 popf
- pushf的功能是将标志寄存器的值压栈;popf的功能是从栈中弹出数据,送入标志寄存器中。