一、PSW程序状态寄存器
反映程序执行时的状态信息,随着程序的执行而发生变化。
D7
D7
D5
D4
D3
D2
D1
D0
CY
AC
—
—
—
OV
—
—
PSW寄存器
1、CY() —— 进位标志,简记C
在加法运算时,有进位,CY=1;无进位,CY=0
在减法运算时,有借位,CY=1;无借位,CY=0
在乘除运算时,CY=0
33 算术运算类指令
2021/1/15
1
2、AC() —— 半进位标志
在加法运算时,低4位向高4位有进位,AC=1;否则AC=0
在减法运算时,低4位向高4位有借位,AC=1;否则AC=0
注意:
8位无符号二进制数范围 0-255
8位有符号二进制数范围 -128 - +127
3、OV() —— 溢出标志
在乘法运算时,乘积超过255,OV=1;否则OV=0
在除法运算时,除数为零,OV=1;否则OV=0
在有符号数加减运算时,数值超出有符号数的范围,OV=1
33 算术运算类指令
2021/1/15
2
二、算术运算类指令(6种/24条)
加法运算: (ADD——4条)
带进位加法运算: (ADDC——4条)
带借位减法运算: (SUBB——4条)
加1/减1操作: (INC,DEC——9条)
单字节乘/除法运算: (MUL,DIV——2条)
十进制调整: (DA A——1条)
33 算术运算类指令
2021/1/15
3
(1)加法运算指令(8条)
1、不带进位加法指令(4条)
指令格式: ADD A ,源操作数
指令功能:目的操作数为累加器A。
将累加器A中的数据与源操作数中数据
相加,结果存入累加器A中,源操作数
保持不变。
PSW的影响:CY、AC、OV等标志。
33 算术运算类指令
2021/1/15
4
例如: 78H+94H=?程序。
ORG 0000H ;程序开始
MOV A , #78H ;(A)=78H
ADD A , #94H ;(A)=(A)+94H
NOP
END ;结束
程序结果:
(A)=0CH
CY=1 AC=0
OV=0
78H 01111000
+ 94H + 10010100
1 0CH 1 00001100
33 算术运算类指令
2021/1/15
5
2、带进位加法指令(4条)
指令格式: ADDC A ,源操作数
指令功能: 目的操作数为累加器A。
将累加器A中的数据与源操作数中的数据
与相加,再加上进位标志CY,结果存入累
加器A中,源操作数保持不变。
PSW的影响:CY、AC、OV等标志。
注意:ADD指令和ADDC指令的区别。
33 算术运算类指令
2021/1/15
6
例如: 5678H+2394H=?程序。
ORG 0000H ;程序开始
MOV A , #78H ;(A)=78H
ADD A , #94H ;(A)=(A)+94H
MOV R0 ,A ;低8位结果存入R0
MOV A , #56H ;(A)=56H
ADDC A , #23H ;(A)=(A)+23H+CY
MOV R1 , A ;高8位结果存入R1
NOP
2021年33算术运算类指令 来自淘豆网m.daumloan.com转载请标明出处.