03.7 第三章 - 单片机指令系统(算术运算类指令ADD,ADDC,SUBB,MUL,DIV,INC,DEC,DA)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Cy AC F0 RS1 RS0 OV
-
P
▪ RS1,RS0:工作寄存器选择标志位
RS1
0 0 1 1
RS0
0 1 0 1
寄存器
组0 组1 组2 组3
3.7.1 程序状态寄存器PSW
❖ 举例:
▪ 计算11101011B + 10111000B 后PSW各标志位值?
b7 b6
b3
1110 1011
+ 、1、0、1 1、 、1 0 0 0
PSW.3 RS0
PSW.2 OV
PSW.1 -
PSW.0 P
结果:C=1 AC=1 OV=1 P=0
3.7.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
▪ Cy:进位标志位C
加减运算后,b7位有进或借位时,则Cy = 1,反之则Cy = 0
▪ 3.除法运算时:运算结果中,B = 0 时,则OV = 1
▪ P:奇偶校验
运算结果中A中若有奇数个1时,则P = 1,否则P = 0
3.7.1 程序状态寄存器PSW
❖ PSW (程序状态寄存器)
▪ 8位寄存器,可寻址
PSW.7 PSW.6 PSW.5 PSW.4 PSW.3 PSW.2 PSW.1 PSW.0
1 1010 0011
Cy
A
A = A3H Cy = 1 AC = 1 OV = 0 P =0
3.7.1 程序状态寄存器PSW
❖ 练习:
▪ 计算10111011B + 111011B 后PSW各标志位值? ▪ 计算9BH + C9H 后PSW各标志位值? ▪ 计算25 + 21 后PSW各标志位值?
3.7.2 加法指令(ADD、ADDC、INC)
❖ 课堂练习 ▪ 1.已知A = 0AAH,(R0)= 30H,(30H) = 0EBH ,则执行ADD A,@R0后 A = ,标志位Cy、AC、 OV、P为多少。 ▪ 2.已知A = 0BFH,(30H) = 9DH,则执行ADD A ,30H后 A = ,标志位Cy、AC、OV、P为多少。
无条件转移指令
:SETB、CLR
:LJMP、AJMP、SJMP、JMP
5.控制转移类指令(17条)
条件转移指令
:JZ、JC、JB、JBC、DJNZ、CJNE
09:42
单片机技术
3
3.7 算数运算类指令
❖ 算数运算类指令分类(24条)
加法(ADD、ADDC)
减法(SUBB)
乘法(MUL)
分
除法(DIV)
3.7.2 加法指令(ADD、ADDC、INC)
❖ 举例 ▪ 已知 A = 0C3H,(R0)= 0AAH,执行ADD A,R0 后,A = ,标志位Cy ,AC ,OV ,P ?
b7b6
b3
1100 0011
+
、1 0 1 0 1 0 1 0
1 0110 1101
Cy
A
A = 6DH Cy = 1 AC = 0 OV = 1 P =1
3.7.2 加法指令(ADD、ADDC、INC)
❖ 2.带进位加法(ADDC)
#data ;A ←(A)+ data + Cy ,立即寻址 direct ;A ←(A)+ direct + Cy ,直接寻址 ADDC A , Rn ;A ←(A)+ (Rn) + Cy ,寄存器寻址 @Ri ;A ←(A)+ (@Ri)+ Cy ,寄间寻址
3.7.2 加法指令(ADD、ADDC、INC)
❖ 1.不带进位加法(ADD)
ADD A ,
#data ;A ←(A)+ data ,立即寻址 direct ;A ←(A)+ direct ,直接寻址 Rn ;A ←(A)+ (Rn) ,寄存器寻址 @Ri ;A ←(A)+ (@Ri),寄间寻址
功能:A = (A)+ 源操作数的值
第三章:单片机指令系统
3.7 算数运算类指令
第三章:MSC-51 单片机指令系统
3.7 - 算术运算类指令
☺ 3.7.1 程序状态寄存器PSW ☺ 3.7.2 加法指令 ☺ 3.7.3 十进制调整指令 ☺ 3.7.4 减法指令 ☺ 3.7.5 乘法指令 ☺ 3.7.6 除法指令
单片机技术
(3.2)单片机指令分类
❖ 指令分类(111条)
1.数据传送类指令(29条)
:MOV、MOVC、MOVX、XCH,XCHD,PUSH,POP,SWAP
2.算术运算类指令(24条)
指
百度文库
:ADD、ADDC、SUBB、MUL、DIV、INC、DEC、DA
令
3.逻辑运算类指令(24条)
系
:ANL、ORL、XRL、CPL
统
4.位操作类指令(17条)
▪ AC:辅助进位标志
加减运算后,b3位有进或借位时,则AC = 1,反之则AC = 0
▪ OV:溢出标志
▪ 1.加、减运算时:
方法一:b7位和b6位只能有一个有进或有借位时,OV=1,否则 OV=0
方法二:运算结果超出(-128~+127)时,OV = 1,否则OV = 0
▪ 2.乘法运算时:运算结果中,B ≠ 0 时,则OV = 1
类
加1(INC)
减1(DEC)
十进制调整(DA)
注意:影响PSW中的Cy、AC、OV、P标志位。
3.7.1 程序状态寄存器PSW
❖ PSW (程序状态寄存器)
▪ 8位寄存器,可位寻址
PSW.7 PSW.6 PSW.5 PSW.4
Cy
AC
F0
RS1
▪ 程序演示
MOV A,#89H MOV R0,#89H ADD A,R0
1 0110 1101
+
、1
1 0110 1110
Cy = 1 AC = 0 OV = 1
Cy
A
P =1
3.7.2 加法指令(ADD、ADDC、INC)
❖ 课堂练习 ▪ 1.已知A = 0AAH,(R0)= 30H,(30H) = 58H ,Cy=1则执行ADDC A,@R0后 A = ,标志位Cy、 AC、OV、P? ▪ 2.已知A = 2FH,(30H) = 8BH,则执行ADDC A ,30H后 A = ,标志位Cy、AC、OV、P?
功能:A = (A)+ 源操作数的值 + Cy
3.7.2 加法指令(ADD、ADDC、INC)
❖ 举例
▪ 已知 A = 0C3H,(R0)= 0AAH,Cy = 1执行 ADDC A,R0后,A = ,标志位Cy ,AC ,OV ,P
?
b7 b6
b3
1100 0011
A = 6EH
、1 0 1 0 1 0 1 0