PSW程序状态字每位的意义是什么?

PSW程序状态字每位的意义是什么?,第1张

psw即程序状态字(有些教材也叫程序状态寄存器),program

status

word

程序状态寄存器psw是计算机系统的核心部件——运算器的一部分,psw用来存放两类信息:一类是体现当前指令搏扮执行结果的各种状态信息,称为状态标志,如有无进位(cf位),有无溢出(of位),结果正负(sf位),结果是否为零(zf位),奇偶标志位(pf位)等;另一类是存放控制信息,称为控制状态,如允许中断(if位),跟踪标志(tf位),方向标志(df)等。有些机器中将psw称为标志寄存器fr(flag

register)。

在8086/8088cpu中,psw是一个16位寄存器,用于寄存单签指令执行后的某些状态,即反映指令执行结果的一些特征信息。在debug程序中,可以使用r命令来查看psw的值,除了tf没有显示之外,其它8个标志的值显示方式如下:

标志名

设置

nv(清除)

ov(溢出)

方向

dn(减)

up(增)

中断

ei(启用)

di(禁用)

正负

ng(负)

pl(正)

zr(0)

nz(非0)

辅助进位

ac(进位)

na(不进位)

奇偶校验

pe(偶校验)

po(奇校验)

进位

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.

psw各位的定义如下:

cy(psw.7):即psw的d7位,进基绝灶位、借位标志。进位、借位cy=1;否则cy=0.

ac(psw.6):即psw的d6位,辅助进位、借位标志。当宏陆d3向d4有借位或进位时,ac=1;否则ac=0.

f0(psw.5及psw.1):即psw的d5位,用户标志位;

rs1及rs0(psw.4及psw.3):即psw的d4、d3位,寄存器组选择控制位;

ov(psw.2):溢出标志。有溢出ov=1,否则ov=0;

f1(psw·1):保留位,无定义;

p(psw·0):奇偶校验标志位,由硬件置位或清0;存在acc中的运算结果有奇数个1时p=1,否则p=0。

F0是用户标志

Cy是进借位标志

Ay是辅助进借位标志

RS0.RS1是工作寄存组

OV:溢出标志位,有溢出时置1.

P:

奇数

标稿哪志位,有奇数个1时置1.

F0是PSW

寄存器

的带敬芦用户可编程位,他是一个用户可以自己设置的状态位,比如在两片

单片机

之间进行通信时,我们可以用这一位的状态来判断是否准备好蠢带接收,或是发送。因此可以作为你设置的标志位,你的程序可以根据需要对这个位进行置位或者清零、或者对这个位进行测试!

我不能给帆洞你全面的解释,但是我知道你真是混了,我理解的是第8位进位的话,状态寄存器中的CY加1,不是你说的什么2啊3啊,如果是11110000和11110000相加呢?那按你的意思又该是哪位进位时CY置1 啊?告饥?但是如果是根据第八位进位,CY置1的话,单片机就好判断CY什么时候置1了,因为当最后位进位态友枯后数值会变成0,而相加前肯定是1,相加后变成了0 ,那么此时CY应该置1了


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12254535.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存