標誌寄存器

標誌寄存器

標誌寄存器又稱程序狀態字(外語縮寫:PSW、外語全稱:Program Status Word)。

這是一個16位的存放條件標誌、控制標誌寄存器,主要用於反映處理器的狀態和ALU運算結果的某些特徵及控制指令的執行。

符號含義


一覽:
標誌位(外語縮寫)標誌位名稱及外語全稱=1=0
CF進位標誌/Carry FlagCY/Carry/進位NC/No Carry/無進位
PF奇偶標誌/Parity FlagPE/Parity Even/偶PO/Parity Odd/奇
AF輔助進位標誌/Auxiliary Carry FlagAC/Auxiliary Carry/進位NA/No Auxiliary Carry/無進位
ZF零標誌/Zero FlagZR/Zero/等於零NZ/Not Zero/不等於零
SF符號標誌/Sign FlagNG/Negative/負PL/Positive/非負
TF跟蹤標誌/Trace Flag
IF中斷標誌/Interrupt FlagEI/Enable Interrupt/允許DI/Disable Interrupt/禁止
DF方向標誌/Direction FlagDN/Down/減少UP/增加
OF溢出標誌/Overflow FlagOV/Overflow/溢出NV/Not Overflow/未溢出

標誌位置


各標誌在標誌寄存器中的位置
各標誌在標誌寄存器中的位置
條件標誌:
• 進位標誌:用於反映運算是否產生進位或借位。如果運算結果的最高位產生一個進位或借位,則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遞減。