8086 cpu 的flag寄存器的結構如下
flag的1,3,5,12,13,14,15bit在8086cpu中沒有使用,不具有任何含義,而其他的都有特殊的含義
1、flag 的第6位是 ZF 爲0標誌位,它記錄相關指令結束後,其結果是否爲0們如果結果爲0,則ZF=1,如果結果不爲0,那麼ZF=0,
可以影響標誌寄存器的指令一般有sub、mul、div、inc、or、and等,它們大多是運算指令
2、flag的第2爲是PF,奇偶標誌位。它記錄相關指令結束後,其結果的所有bit位中1的個數是不是偶數,如果1的個數是偶數,則PF=1,否則爲0
3、flag的第7位是SF標誌位,符號標誌位,它記錄相關指令執行結束後,其結果爲是否爲負,如果爲負則SF=1 否則爲0
4、flag的第0位是CF,進位標誌位,在進行無符號數運算時候,它記錄了運算結果的最高位有效位想更高位的進位值,或者更高位的借位值
5、flag的第11位是OF,溢出標誌位,在進行有符號數運算的時候,它記錄了運算的結果是否溢出,如果溢出,則OF爲1,否則爲0
6、flag的第10位是DF,方向標誌位,在串處理指令中,控制每次操作之後的si、di的增減,
df = 0 每次操作後si 、di遞增
df = 1 每次操作後si 、di遞減
其中指令cld將df設置爲0,指令std將df設置爲1