学习贯彻党的二十届三中全会精神

程序状态字寄存器

程序状态字寄存器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。

参考资料

河南工人日报数字报