標志寄存器,又稱程序狀態字(Program Status Word,簡記PSW),也稱程序狀態寄存器。標志寄存器是一個16位的寄存器,它的位控制各種指令的執行,并反映處理器的現行狀態。
標志寄存器共設有9個標志位,用以反映算術邏輯運算結果的某些特征。不同的指令對標志的影響是不同的;反之,不同的標志也影響著指令執行的結果。其中CF、PF、AF、ZF、SF和OF6個是狀態標志,IF、DF、TF3個是控制標志,其他7位為無用位。
符號含義
一覽:
標志位置
條件標志:
??進位標志:用于反映運算是否產生進位或借位。如果運算結果的最高位產生一個進位或借位,則CF置1,否則置0。運算結果的最高位包括字操作的第15位和字節操作的第7位。移位指令也會將操作數的最高位或最低位移入CF。
??奇偶標志:用于反映運算結果低8位中“1”的個數。“1”的個數為偶數,則PF置1,否則置0。
??輔助進位標志:算數操作結果的第三位(從0開始計數)如果產生了進位或者借位則將其置為1,否則置為0,常在BCD(binary-codedecimal)算術運算中被使用。
??零標志:用于判斷結果是否為0。運算結果0,ZF置1,否則置0。
??符號標志:用于反映運算結果的符號,運算結果為負,SF置1,否則置0。因為有符號數采用補碼的形式表示,所以SF與運算結果的最高位相同。
??溢出標志:反映有符號數加減運算是否溢出。如果運算結果超過了8位或者16位有符號數的表示范圍,則OF置1,否則置0。
控制標志:
??跟蹤標志:當TF被設置為1時,CPU進入單步模式,所謂單步模式就是CPU在每執行一步指令后都產生一個單步中斷。主要用于程序的調試。8086/8088中沒有專門用來置位和清零TF的命令,需要用其他辦法。
??中斷標志:決定CPU是否響應外部可屏蔽中斷請求。IF為1時,CPU允許響應外部的可屏蔽中斷請求。
??方向標志:決定串操作指令執行時有關指針寄存器調整方向。當DF為1時,串操作指令按遞減方式改變有關存儲器指針值,每次操作后使SI、DI遞減。
參考資料 >