89C51的程序状态字寄存器PSW是一个8位的专用寄存器,用于存程序运行的各种状态信息? 对还是错啊?

2024年11月23日 01:50
有1个网友回答
网友(1):

对的!!
下面是介绍:
PSW各位定义:
psw.7 psw.6 psw.5 psw.4 psw.3 psw.2 psw.1 psw.0
Cy Ac F0 RS1 RS0 Ov ---- P
程序状态字寄存器PSW是一个8位寄存器,用于存放程序运行中各种状态信息。其中,F0\RS1\RS0可以由用户自己编程设定,其他位的状态是根据程序执行结果,由硬件自动设置的。下面分别介绍。

Cy:进位标志,是PSW中最常用的标志位

功能有二:一、存放算术运算的进位标志,在进行加减运算时,若操作结果的最高位有进位或借位,则自动置1,否则为0。二、在位操作中,作位累加器C使用。

Ac:辅助进位标志

在加减运算时,低4位向高4位进位或借位时,自动置1,否则为0。在BCD码调整中也要用到Ac位的状态。

F0:用户标志位

用户可以编程对这个标志位置位或复位,使用最为灵活,常用作数据收发标志或准备好的标志。

RS1&RS0:寄存器组选择位

选择CPU当前使用的工作寄存器组,单片机中共有四组工作寄存器,每次上电或复位后RS被置0,用户可以编程选择当前工作寄存器,达到保护某一区R0~R7中数据的目的。

Ov:溢出标志位

在带符号的加减运算中,若运算超出了累加器A所能表示的符号数的有效范围(-128~127),则自动置1,表示产生了溢出,说明运算结果是错误的。否则为0。

乘法运算中,Ov=1表示乘积超过255,即乘积分别在A和B中;否则为0,表示乘积只在A中。

除法运算中,Ov=1表示除数为0。

P:奇偶标志位

表明累加器A中数据的奇偶性。若A中有奇数个“1”,则自动置1,否则为0。此标志位常用于串行通信中的奇偶校验。