PSW程序状态字每位的意义是什么?
发布网友
发布时间:2022-04-23 02:18
我来回答
共2个回答
热心网友
时间:2022-06-03 06:21
展开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。
热心网友
时间:2022-06-03 06:21
位
7:
CY:进位标志。
当最后一次算术操作产生进位(加法)或借位(减法)时,该位置
1。其它算
术操作将其清
0。
位
6:
AC:辅助进位标志。
当最后一次算术操作向高半字节有进位(加法)或借位(减法)时,该位置
1。
其它算术操作将其清
0。
位
5:
F0:用户标志
0。
这是一个可位寻址、受软件控制的通用标志位。
位
4-3:
RS1-RS0:寄存器区选择。
该两位在寄存器访问时用于选择寄存器区。
RS1
RS0
寄存器区
地址
0
0
0
0x00-0x07
0
1
1
0x08-0x0F
1
0
2
0x10-0x17
1
1
3
0x18-0x1F
位
2:
OV:溢出标志。
该位在下列情况下被置1:
y
ADD、ADDC
或SUBB
指令引起符号位变化溢出。
y
MUL指令引起溢出(结果大于
255)
。
y
DIV
指令的除数为
0。
ADD、ADDC、SUBB、MUL和
DIV
指令的其它情况使该位清
0。
位
1:
F1:用户标志
1。
这是一个可位寻址、受软件控制的通用标志位。
位
0:
PARITY:奇偶标志。
若累加器中8
个位的和为奇数时该位置
1,为偶数时清
0