flag 標誌寄存器

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



發佈了14 篇原創文章 · 獲贊 3 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章