Intel 8086/8088CPU設(shè)置了一個(gè)16位的標(biāo)志寄存器,用來反映微處理器的當(dāng)前狀態(tài)和某些控制,標(biāo)志寄存器中有9個(gè)標(biāo)志位,分為兩大類:狀態(tài)標(biāo)志(CF, PF, AF, ZF, SF, OF)和控制標(biāo)志(TF, IF, DF),狀態(tài)標(biāo)志由CPU根據(jù)運(yùn)算結(jié)果自動(dòng)設(shè)置,用來反映CPU的執(zhí)行單元EU執(zhí)行算術(shù)運(yùn)算或邏輯運(yùn)算后的結(jié)果特征,這些特征常用來影響或者是控制某些后續(xù)指令的執(zhí)行,控制標(biāo)志由系統(tǒng)程序或者用戶程序用指令來設(shè)置或者是清除,用來控制CPU的某些操作。
1)、狀態(tài)標(biāo)志
(1)進(jìn)位位CF
進(jìn)位位CF用來反映運(yùn)算結(jié)果是否產(chǎn)生進(jìn)位或者是借位。如果運(yùn)算結(jié)果的最高
位(字操作的15位和字節(jié)操作的第7位)產(chǎn)生一個(gè)進(jìn)位(減法),則CF置1,否則CF清零,另外CF在循環(huán)移位/移位類指令中用來保存從最高位或最低位移出的0或1
(2)奇偶位PF
奇偶位PF用來反映運(yùn)算結(jié)果低八位中“1”的個(gè)數(shù),可以為傳送數(shù)據(jù)時(shí)可能產(chǎn)生的出錯(cuò)情況提供校驗(yàn)條件,如果運(yùn)算結(jié)果中的低八位中“1”的個(gè)數(shù)為偶數(shù)個(gè)時(shí),則置PF為1,否則置0
(3)輔助進(jìn)位位AF
輔助進(jìn)位位AF用來反映運(yùn)算結(jié)果低四位產(chǎn)生進(jìn)位或借位情況,如果運(yùn)算結(jié)果的第3位產(chǎn)生了一個(gè)進(jìn)位或借位,,則AF置1,否則置0,AF只反映運(yùn)算結(jié)果的低八位,與操作數(shù)長度無關(guān),主要用于十進(jìn)制的調(diào)整
(4)零值位ZF
零值位ZF用來反映運(yùn)算結(jié)果是否為0, 如果運(yùn)算結(jié)果為0,則ZF置為1, 否則置為0
(5)符號位SF
符號位SF再將運(yùn)算結(jié)果視為帶符號數(shù)時(shí),用來反映運(yùn)算結(jié)果是正數(shù)還是負(fù)數(shù),如果運(yùn)算結(jié)果是負(fù)數(shù),即一個(gè)數(shù)的最高位為1則SF置1,否則置0,所以SF與運(yùn)算結(jié)果的最高位相一致
(6)溢出位OF
溢出位OF用來反映運(yùn)算結(jié)果是否超出了補(bǔ)碼的表示范圍,8位帶符號數(shù)的補(bǔ)碼的表示范圍是-128--+127, 16位的帶符號數(shù)補(bǔ)碼表示范圍是-32768--+32767,如果運(yùn)算結(jié)果超過了補(bǔ)碼的范圍,則OF置1,否則置0.
2)控制標(biāo)志
(1)單步標(biāo)志位TF
單步標(biāo)志位TF也叫跟蹤標(biāo)志位,用藥用于程序程序的跟蹤調(diào)試,當(dāng)TF=1時(shí),CPU進(jìn)入單步狀態(tài)。
(2)中斷允許位IF
中斷允許位IF用于決定CPU是否可以相應(yīng)外部可屏蔽中斷請求,當(dāng)IF=1時(shí)為中斷狀態(tài),即允許CPU響應(yīng)外部可屏蔽中斷,反則一樣
(3)方向位DF
方向位DF決定串操作指令執(zhí)行時(shí)指針寄存器的調(diào)整方向方向,當(dāng)DF=0時(shí),正向處理,從地地址向高地址,即串操作指令自動(dòng)地使地址寄存器(SI或DI)遞增,反之同樣