tceic.com
学霸学习网 这下你爽了
赞助商链接
当前位置:首页 >> 少儿英语 >>

33 算术运算类指令


算术运算类指令
主要内容:
1、PSW寄存器功能说明

2、加、减、乘、除算术运算指令
(8位无符号二进制数的算术运算)

3、算术运算指令对PSW寄存器的影响

《单片机原理与应用》教学课件

一、PSW程序状态寄存器
反映程序执行时的状态信息,随着程序的 执行而发生变化。 PSW 寄存器 D7 D7 D5 D4 D3 D2 D1 D0 CY AC — — — OV — —

1、CY(PSW.7) —— 进位标志,简记C
在加法运算时,有进位,CY=1;无进位,CY=0
在减法运算时,有借位,CY=1;无借位,CY=0

在乘除运算时,CY=0
《单片机原理与应用》教学课件

2、AC(PSW.6) —— 半进位标志
在加法运算时,低4位向高4位有进位,AC=1;否则AC=0 在减法运算时,低4位向高4位有借位,AC=1;否则AC=0

3、OV(PSW.2) —— 溢出标志
在乘法运算时,乘积超过255,OV=1;否则OV=0
在除法运算时,除数为零,OV=1;否则OV=0 在有符号数加减运算时,数值超出有符号数的范围,OV=1 注意: 8位无符号二进制数范围 0-255

8位有符号二进制数范围

-128 - +127

《单片机原理与应用》教学课件

二、算术运算类指令(6种/24条)
加法运算: 带进位加法运算: 带借位减法运算: 加1/减1操作: 单字节乘/除法运算: 十进制调整: (ADD——4条) (ADDC——4条) (SUBB——4条) (INC,DEC——9条) (MUL,DIV——2条) (DA A——1条)

《单片机原理及应用》教学课件

(1)加法运算指令(8条)
1、不带进位加法指令(4条)
指令格式: ADD A ,源操作数 指令功能:目的操作数为累加器A。 将累加器A中的数据与源操作数中数据 相加,结果存入累加器A中,源操作数

保持不变。
PSW的影响:CY、AC、OV等标志。

《单片机原理与应用》教学课件

例如: 78H+94H=?程序。 ORG MOV 0000H A , #78H ;程序开始 ;(A)=78H

ADD
NOP END

A , #94H

;(A)=(A)+94H
;结束 程序结果:

78H
+ 94H 1 0CH

01111000
+ 10010100 1 00001100
《单片机原理与应用》教学课件

(A)=0CH
CY=1 OV=0 AC=0

2、带进位加法指令(4条)
指令格式: ADDC A ,源操作数

指令功能:目的操作数为累加器A。
将累加器A中的数据与源操作数中的数据 与相加,再加上进位标志CY,结果存入累 加器A中,源操作数保持不变。 PSW的影响:CY、AC、OV等标志。

注意:ADD指令和ADDC指令的区别。
《单片机原理与应用》教学课件

例如: 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 END ;结束 程序结果: (A) =7AH 56 78H + 23 94H 7A 0CH 01010110 01111000 + 00100011 10010100 01111010 00001100
《单片机原理与应用》教学课件

(R1)=7AH (R0)=0CH
CY=0 OV=0 AC=0

(2)带借位减法运算指令(4条)
指令格式:SUBB A ,源操作数 指令功能:目的操作数为累加器A。 累加器A中的数据减去源操作数 中的数据,再减去进位标志CY, 结果存入累加器A中,源操作数 保持不变。 PSW的影响:CY、AC、OV等标志。

《单片机原理与应用》教学课件

例如:34H-56H=?程序 ORG 0000H ;程序开始 ;CY=0 MOV PSW , #00H

MOV A , #34H
SUBB A , #56H NOP END

;(A)=34H
;(A)=(A)-56H-CY ;结束

34H
56H CY -

00110100
01010110 0

程序结果:
(A)=DEH CY=1 AC=1

1 DEH

1 11011110

OV=0

《单片机原理与应用》教学课件

例如:7834H-1256H=?程序

ORG MOV MOV SUBB MOV MOV SUBB MOV NOP END
78 34H - 12 56H

0000H PSW , #00H A , #34H A , #56H R0 , A A , #78H A , #12H R1 , A

;CY=0 ;(A)=34H ;(A)=(A)-56H-CY ;低8位结果存入R0 ;(A)=78H ;(A)=(A)-12H-CY ;高8位结果存入R1 ;结束 程序结果: (A)=65H

01111000 00110100 - 00010010 01010110

(R1)=65H (R0)=DEH
CY=0 OV=0 AC=0

65 DEH

01100101 11011110
《单片机原理与应用》教学课件

(3)乘除运算指令
1、乘法指令(1条)
指令格式:MUL AB
指令功能:将累加器A中的数据与寄存器B中 的数据相乘,乘积的高8位存入B 中,乘积的低8位存入A中。 PSW的影响:OV、CY等标志。

《单片机原理与应用》教学课件

例如: ORG 0000H ;程序开始 ;(A)=4 MOV A , #4

MOV B , #5
MUL NOP END AB

; (B)=5
;(BA)=A×B ;结束

程序结果: (B)=00H (A)=14H

CY=0

OV=0
《单片机原理与应用》教学课件

例如:
ORG 0000H MOV A , #4EH ;程序开始 ;(A)=4EH

MOV B , #5DH
MUL NOP END 程序结果: (B)=1CH CY=0 AB

;(B)=5DH
;(BA)=A×B ;结束

(A)=56H OV=1

《单片机原理与应用》教学课件

2、除法指令(1条)
指令格式: DIV AB 指令功能:将累加器A中的数据除以寄存器B中 的数据,商存入A中,余数存入B中。 PSW的影响:CY、OV等标志。 例如:

ORG
MOV MOV DIV NOP

0000H
B , #9 AB

;程序开始
;(B)=9 ;(A)=4,(B)=0,(CY)=0,(OV)=0

A , #36 ;(A)=36

END

;结束
《单片机原理与应用》教学课件

(4)加1指令和减1指令
1、加1指令(5条)
指令格式: INC 操作数 指令功能:将操作数中的数据加1,结果存 入操作数中。 PSW的影响:标志不影响。 例如: ORG 0000H INC INC NOP END
《单片机原理与应用》教学课件

;程序开始 ;(A)=(A)+1=FFH ;(A)=(A)+1=00H ;结束

MOV A ,#0FEH ;(A)=FEH A A

2、减1指令(4条)
指令格式: DEC 操作数
指令功能: 将操作数中的数据减1,结果存入 操作数中。 PSW的影响:标志不影响。 例如: ORG 0000H ;程序开始

MOV
DEC DEC DEC NOP END

A,#02H
A A A

;(A)=02H
;(A)=(A)-1=01H ;(A)=(A)-1=00H ;(A)=(A)-1=FFH ; 结束

《单片机原理与应用》教学课件

(5)十进制调整:(DA

A——1条)

用于两个BCD码之间的相加,这条指令只能跟在 ADD 或 ADDC 之后

? BCD码是指“用二进制表达的十进制数”。如: 十进制数20可以用二进制数00010100B表示; 也可以用十六进制数14H表示; 还可以用BCD码 00100000B 或 20H 表示。
? 4个二进制位就可以表示一位BCD码: 0000~1001 可表示十进制数(BCD数) 0~9; 8个二进制位就可以表示两位压缩的BCD码: 00000000~10011001 表示 00~99。
《单片机原理及应用》教学课件

指令 “DA

A” 完成的操作:

? 若(A)3~0?9或(AC)=1则(A)3~0?(A)3~0+6; 若(A)7~4?9或(CY)=1则(A)7~4?(A)7~4+6; ? P.60例5:两个十进制数“65”与“58”相加,根 据常识,显然其和应当为“123”。 ? MOV ADD DA

A,#65H A,#58H A

6
5 + 6

5
8 6

0110 0101
0101 1000 0110 0110

结果:(A)= 23H
(CY)= 1 1

18 19
2 3

《单片机原理及应用》教学课件

指令 “DA

A” 完成的操作:

? 若(A)3~0?9或(AC)=1则(A)3~0?(A)3~0+6; 若(A)7~4?9或(CY)=1则(A)7~4?(A)7~4+6; ? 又如:两个十进制数“39”与“58”相加,根据常 识,显然其和应当为“97”。 ? MOV ADD DA

A,#39H A,#58H A

3
5 +

9
8 6

0011 1001
0101 1000 0110

结果:(A)= 97H
(CY)= 0 0 9

23
7

《单片机原理及应用》教学课件

指令练习
1、指出下列程序中,每条指令的执行结果 ORG 0000H ;程序开始

MOV 30H , #52H ;(30H)=52H

MOV A , #78H
MOV A , #30H MOV R0 , #30H MOV A , @R0 LOOP:SJMP LOOP

;(A)=78H
;(A)=30H ;(R0)=30H ;(A)=52H,(RO)=30H ;循环跳转

END

;结束
《单片机原理与应用》教学课件

2、编程,将30H地址开始的连续10个存储单元分别 存入0 – 9 这10个数。 方法一:

ORG
MOV MOV MOV ………

0000H
30H , #0 31H , #1 32H , #2

;程序开始
;(30H)=0 ;(31H)=1 ;(32H)=2 ;略

MOV
END

39H , #9

;(39H)=9
;循环 ;结束

LOOP: SJMP LOOP

《单片机原理与应用》教学课件

方法二: ORG MOV 0000H A , #0 ; 程序开始 ;(A)=0

MOV
MOV LOOP1: MOV INC INC

R0 , #30H
R1 , #10 @R0 , A A R0 LOOP2

;(R0)=30H
;(R1)=10 ;((R0))=A ;(A)=(A)+1 ;(R0)=(R0)+1 ;循环 ;结束

DJNZ
LOOP2: SJMP END

R1 , LOOP1 ;(R1)=(R1)-1,不为零跳

《单片机原理与应用》教学课件

3、工作寄存器的使用练习。

PSW 寄存器

D7

D7

D5

D4

D3

D2

D1

D0

CY

AC
ORG

F0 RS1 RS0 OV
0000H



P

;程序开始

MOV
MOV MOV MOV LOOP: SJMP

PSW , #00H
R0 , #02H PSW , #08H R0 , #04H LOOP

;RS1RS0=00
;(R0)=02H ;RS1RS0=01 ;(R0)=04H ;循环

END
《单片机原理与应用》教学课件

;结束


推荐相关:

33 算术运算类指令_图文.ppt

33 算术运算类指令 - 算术运算类指令 主要内容: 主要内容: 1、PSW寄存


算术运算类指令_图文.ppt

算术运算类指令_化学_自然科学_专业资料。第三节 8086/8088的指令系统(续) 三...33 比较指令常常根据条件(标志)转移,无符号数转移指令如下:条件转移指令 低于 ...


33 算术运算类指令_图文.ppt

33 算术运算类指令 - 算术运算类指令 主要内容: 1、PSW寄存器功能说明


3.3.2 算术运算类指令.doc

3.3.2 算术运算类指令。1. 加法指令(s 代表源操作数,d 代表目标操作数) ...(因为 AF=1,有 6b+6=71h) 再比如 mov al, 33h mov bl, 98h add al...


算术运算类指令 第四组_图文.ppt

算术运算类指令 ? 加 1减 1 ?乘除 ?十进制调整指令 一、 乘、 除法指令乘...ADDC A , R2 ; 执行(A)+(CY)+(R2)=33H→(A), ? (CY)=1,(AC)=...


3.3 算术运算指令_图文.ppt

31 (5)求补指令 NEG 格式: NEG reg/mem 操作: opr← 0-opr 或将操作数按位取反后末位加1 NEG AL ;(AL)=03H → (AL)=0FDH 33 小结:算术运算指令...


第3章 指令系统_图文.pdf

数据传送类指令 ?算术运算类指令 ?逻辑运算类指令 ?串操作类指令 ?控制转移类...(SP)-2 2000H 78H 44H SP 78H 56H 44H 33H 000BH 000CH 000DH 000...


2.3.2算数运算指令_图文.ppt

2.3.2算数运算指令_化学_自然科学_专业资料。2.3.2 算术运算类指令 MCS-...MOV A,30H ADD A,32H DA A MOV 30H,A MOV A,31H ADDC A,33H DA A...


单片机 算术运算类 指令_图文.ppt

(31H)(30H) 3.4.2 算术运算类指令(24条) 例3:写指令,完成RAM中(30H)、(31H)、(32H) 连加,结果送33H? 用ADD还是用ADDC ? ABC: MOV ADD ADD MOV...


8051汇编语言概述一 ) 指令分类 42个助记符,33种功能,....ppt

SP=33H ;(SP)→DPL,SP-1→SP,SP=32H ;(SP)→DPH,SP-1→SP,SP=31H ;(SP)→ACC,SP-1→SP,SP=30H 01H DPL DPH ACC 3-4 算术运算类指令 8051...


02_2数据传送与算术运算指令_图文.ppt

mov ax,1000h push ax ;④ 低 00 30 00 22 20 11 00 44 10 33 高 ...算术运算指令实现二进 制(和十进制)数据的四则运算 ? 请注意算术运算类指令对...


单片机指令(四)算术运算类指令.doc

单片机指令(四)算术运算类指令_信息与通信_工程科技_专业资料。单片机指令(四)...例:(A)=12H,(R0)=33H,(21H)=32H, (34H)=22H,DPTR=1234H。执行下面的...


8051指令系统与编程基础-指令系统部分_图文.ppt

类指令 2 基本的算术运算类指令 3 条件跳转指令 4 子程序和中断程序相关指令 ...(Ri))-Cy→A, i =0,1 ; (A)-#data-Cy→A 33 3.3.2 算术运算类...


单片机课件算术运算类指令_图文.ppt

第三章 MCS-51指令系统 2 算术运算类指令(24条) 成都理工大学工程技术学院 ...33 算术运算类指令 暂无评价 24页 免费 51单片机汇编语言教程:... 3页 免费...


单片机的指令系统.ppt

算术运算类指令 ? 逻辑操作类指令 ? 控制转移类指令 ? 位操作指令 1 3.1 ...MCS-51单片机指令系统共有33种功能,42种助记符, 111条指令。 2 3) 指令...


算术运算类指令_图文.ppt

算术运算类指令_院校资料_高等教育_教育专区。单片机 1、将外部RAM2000H单元和...? ? ? ? ? 例:编程实现将4位BCD码相加,加数存放在30H、 31H和32h、33h...


2016年上半年计算机原理第2次作业.doc

程序控制类指令的功能是___D___。 A. 进行算术运算和逻辑运算 B. 进行主存...能执行多个微操作,但它们一定是相斥的 33.堆栈常用于___B___。 A. 数据...


第3章 8088指令系统3(算术运算指令)_图文.ppt

1 表3 - 2 算术运算类指令表 2 ? 两个8位数相加时有4种情况: 无符号数...(AL)∧0FH 33 调整原理:先看一个例子 计算8+9 0000 1000 +0000 1001 0001...


第八次课 4-3 算数 (1)_图文.ppt

33H 22H ┇数据段 2 数据段 1 一、数据传送类指令 LES 指令举例 LES DI,...二、算术运算类指令 1.加法指令与减法指令 1)加法指令 普通加法指令ADD 带进位...


汇编第3章数据传送与算术运算指令课件._图文.ppt

(2)算术运算类指令 学习汇编指令应从以下 几方面着重理解掌握: (1)指令格式;...MOV AX,0 MOV DS,AX MOV BX,200H MOV AL,3 XLAT 30H 31H 32H 33H ...

网站首页 | 网站地图
All rights reserved Powered by 学霸学习网 www.tceic.com
copyright ©right 2010-2021。
文档资料库内容来自网络,如有侵犯请联系客服。zhit325@126.com