程序狀態字寄存器PSW(Program State Word Registor),是一個保存各種狀態條件標志的寄存器。
程序狀態字寄存器用來保存由算術/邏輯指令運行或測試的結果所建立起來的各種條件碼內容,如運算結果進/借位標志(C)、運算結果溢出標志(O)、運算結果為零標志(Z)、運算結果為負標志(N)、運算結果符號標志(S)等,這些標志位通常用1位觸發器來保存。
除此之外,程序狀態字寄存器還用來保存中斷和系統工作狀態等信息,以便CPU和系統及時了解機器運行狀態和程序運行狀態。
組成原件
51單片機的PSW是一個8位寄存器,用來存放指令執行后的一些的狀態,通常由CPU來填寫,但是用戶也可以改變各狀態位的值。各標志位定義如下所示:
Bit7 Cy
Bit6 AC
Bit5 F0
Bit4 RS1
Bit3 RS0
Bit2 OV
Bit1 -
Bit0 P
主要內容
1. CY(Carry):
CY表示加法運算中的進位和減法運算中的借位,加法運算中有進位或減法運算中有借位則CY位置1,否則為0。
2. AC(Auxiliary Carry):
與CY基本相同,不同的是AC表示的是低4位向高4位的進、借位。
3.F0:
該位是用戶自己管理的標志位,用戶可以根據自己的需要來設定,用于實現某些測控功能。
4. RS1、RS0:
這兩位用于選擇當前工作寄存器區。8051有8個8位寄存器R0~R7,它們在RAM中的地址可以根據用戶需要來確定。
RS1 RS0:R0~R7的地址
0 0: 00H~07H
0 1: 08H~0FH
1 0: 10H~17H
1 1: 18H~1FH
5.OV:
該位表示運算是否發生了溢出。若運算結果超過了8位有符號數所能表示的范圍,即-128 ~ +127,則 OV = 1。
6.P:
P是奇偶標志位。若累加器A中1的個數為奇數,則P = 1;若累加器A中1的個數為偶數,則P = 0。
參考資料 >