-
PSW
(單片機術語)
鎖定
- 中文名
- 程序狀態字
- 外文名
- PSW
- 別 稱
- 狀態寄存器
- 用 途
- 系統態和用户態之間轉換
- 英文全稱
- Program Status Word
- 性 質
- 計算機系統的核心部件運算器的一部分
PSW簡介
程序狀態寄存器PSW是計算機系統的核心部件——運算器的一部分,PSW用來存放兩類信息:一類是體現當前指令執行結果的各種狀態信息,稱為狀態標誌,如有無借位進位(CY位)、有無溢出(OF位)、結果正負(SF位)、結果是否為零(ZF位)、奇偶標誌位(PF位)等;另一類是存放控制信息,稱為控制狀態,如允許中斷(IF位),跟蹤標誌(TF位),方向標誌(DF)等。有些機器中將PSW稱為標誌寄存器FR(Flag Register)。
[1]
PSW作用
程序狀態字用來指示處理器狀態、控制指令的執行順序並且保留和指示與運行程序有關的各種信息,其主要作用是方便地實現程序狀態的保護和恢復。每個正在執行的程序都有一個與其執行相關的PSW,而每個處理器都設置一個程序狀態字寄存器。一個程序佔有處理器執行,它的PSW將佔有程序狀態字寄存器。一般來説,程序狀態字寄存器包括以下幾類內容:
程序基本狀態。包括:(1)程序計數器:指明下一條執行的指令地址;(2)條件碼:表示指令執行的結果狀態:(3)處理器狀態位:指明當前的處理器狀態,如目態或管態、運行或等待。
- 中斷碼。保存程序執行時當前發生的中斷事件。
- 中斷屏蔽位。指明程序執行中發生中斷事件時,是否響應出現的中斷事件。
PSW各狀態字定義
0 V——溢出標誌位:對於單字節的有符號數,若用最高位(b7)表示正、負號,則只有7位有效數位(b6~b0),能表示-128~+127之間的數。運算結果超出了這個數值範圍,就會發生溢出,此時OV=1,否則OV=0。
AC——半進位標誌位:當CPU進行加法(或減法)運算時,如果低半字節(b3~b0)向高半字節(b7~b4)有進位(或借位),即b3向b4進位(或借位)時,AC置1,否則清0。AC可用於BCD碼加法時的調整判別位。
[3]
PSW用法示例
在8086/8088CPU中,PSW是一個16位寄存器,用於寄存單籤指令執行後的某些狀態,即反映指令執行結果的一些特徵信息。在debug程序中,可以使用R命令來查看PSW的值,除了TF沒有顯示之外,其它8個標誌的值顯示方式如下:
- 標誌名;
- 設置 nv(清除) ov(溢出);
- 方向 dn(減) up(增);
- 中斷 ei(啓用) di(禁用);
- 正負 ng(負) pl(正);
- 零 zr(0) nz(非0);
- 輔助進位 ac(進位) na(不進位);
- 進位 cy(進位) nc(不進位)。
例如:
- OV DN EI NG ZR AC PE CY依次表示OF DF IF SF ZF AF PF CF都為1;
- NV UP DI PL NZ NA PO NC依次表示OF DF IF SF ZF AF PF CF都為0。