8086CPU的标志(flag)寄存器的结构如图所示:
ZF:零标志位。它记录相关指令执行后,其结果是否为0。如果结果为0,那么 zf = 1;如果结果不为0,那么 zf = 0。
PF:奇偶标志位。它记录相关指令执行后,其结果的所有bit位中1的个数是否为偶数。如果1的个数为偶数,pf = 1;如果为奇数,pf = 0。
SF:符号标志位。它记录相关指令执行后,其结果是否为负。如果结果为负,sf = 1;如果非负,sf = 0。
CF:进位标志位。一般情况下,在进行无符号数运算的时候,它记录了运算结果的最高有效位向更高位的进位值,或从更高位的借位值。
OF:溢出标志位。一般情况下,它记录了有符号数运算的结果是否发生了溢出。如果发生溢出,of = 1;如果没有,of = 0。
DF:方向标志位。在串处理指令(movsb,movsw)中,控制每次操作后si、di的增减。df=0 每次操作后si,di递增;df=1 每次操作后si,di递减。
8086 CPU提供了两条指令对DF位进行设置
cld指令;将标志寄存器的df位设置为0 //正向传递
std指令;将标志寄存器的df位设置为1 //逆向传递
标志 值为1的标记 值为0的标记
of OV NV
sf NG PL
zf ZR NZ
pf PE PO
cf CY NC
df DN UP

在8086CPU指令集中,
对于无符号数的运算,CPU用CF标志位来记录运算中是否产生了进位。
对于有符号数的运算,CPU用OF标志位来记录运算中是否产生了溢出;另外,还需要SF标志位来记录结果的符号。