7汇编语言程序设计详解PPT课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
08.12.2020
单片机原理及其应用
13
Baidu Nhomakorabea
7.2 算术运算程序的设计
(1)2位十进制数减法子程序: 入口条件:R0指出被减数所在单元的地址;R1指出减数
所在单元的地址; 出口条件:R0指出差所在单元的地址,进位在Cy中;
SH_SUB:
MOV A, #9AH SUBB A, @R1 ADD A, @R0 DA A MOV @R0, A INC R0 INC R1 CPL C RET
08.12.2020
单片机原理及其应用
4
7.1 伪指令
常用的有以下几种伪指令:
(1)设置起始地址伪指令ORG
ORG xxxxH
如:
ORG 0100H
SUB: MOV R0, #30H
……
(2)赋值伪指令EQU
变量代号 EQU 数值
如: LEN EQU 20; 在程序中变量LEN的值为20H
Xdata EQU 4F8BH;在程序中变量Xdata的值
第7章 汇编语言程序设计
7.1 伪指令
主
7.2 算术运算程序的设计
要
7.3 循环程序的设计 7.4 查表程序的设计
内
7.5 检索程序的设计
7.6 分支程序的设计
容
7.7 码制转换程序的设计
7.8 逻辑操作程序
第7章 汇编语言程序设计
程序设计是为了解决某一个问题,把指令(或 语句)按照一定的意图有序地组合在一起。
08.12.2020
单片机原理及其应用
6
7.1 伪指令
(4) 定义双字节数据伪指令DW
[xxxxH] DW data16
如: 1000H DW 0FDE1H
1100H DW 1345, 2241, 34556
(5) 位地址赋值伪指令BIT
变量代号 BIT 位地址
如: CS
BIT P2.0
FLAG
BIT 20H.6
例2 多字节二进制减法。 多字节二进制减法与多字节二进制加法相似,图
7.2为3字节二进制减法的算法。
-
Cy
Cy
Cy 0
图7.2 减法算法
08.12.2020
单片机原理及其应用
10
7.2 算术运算程序的设计
例3 多位十进制数加法。 十进制数在计算机中可以采用BCD码的形式存
放。采用紧凑形式(或压缩式)BCD码存放十进制数 时,一个存储单元可以存储2位。MCS-51单片机仅 支持二进制加法运算,采用ADD和ADDC指令的结果 是二进制数,因此,2个以BCD码形式存储的数据, 在用ADD和ADDC运算之后,必须对其运算结果进行 调整。多位十进制数加法的算法与多字节二进制数 算法相似,如图7.3所示。
(6) 汇编结束伪指令END
END
08.12.2020
单片机原理及其应用
7
7.2 算术运算程序的设计
在MCS-51单片机指令系统中,算术运算指令仅 支持2个无符号的8位二进制数的运算,二进制数算 术运算是按字节的方式进行的。
08.12.2020
单片机原理及其应用
8
7.2 算术运算程序的设计
例1 多字节二进制加法。 以三字节无符号二进制数为例,算法如图7.1所
08.12.2020
单片机原理及其应用
3
7.1 伪指令
伪指令(Pseudo Instruction)是汇编语言中起 解释说明的命令,它不是单片机的指令。
在单片机的集成开发环境中,向汇编系统说明 程序存储在程序存储器的哪个区域、本汇编语言程 序到何处结束、变量代号对应的单元地址或所代表 的数值等。在汇编时,伪指令不会产生目标代码, 不影响程序的执行。
例5 多字节数二进制乘法 2个多字节二进制数乘法的算法与按位进行十进
为4F8BH
08.12.2020
单片机原理及其应用
5
7.1 伪指令
(3)定义字节数据伪指令DB [xxxxH] DB data
如: 2000H DB 30H ; 伪指令DB也可用来定义多个连续单元为常数,
即用来定义一组单字节数据组成的常数表。 如: ORG 1000H
DB 30H,31H,32H,33H,34H,35H,36H, 37H,38H,39H, 2EH,0DH
目前,基于MCS-51单片机的程序开发设计有采 用汇编语言和高级语言2种形式,高级语言有采用C 语言、BASIC语言、PLM语言等,大多数集成开发环 境(Integrated Development Environment,IDE) 软件都支持这2种形式。
08.12.2020
单片机原理及其应用
2
第7章 汇编语言程序设计
汇编程序设计的步骤: (1)分析题目或课题的要求,正确理解解决什么问 题,如何解决问题、有哪些可利用的资源、对计算 精度的要求等;另外,了解应用系统硬件的结构和 功能与课题任务的关联。 (2)确定解决问题的方案,画出程序流程框图; (2)根据解决方案,确定变量及其数据存储格式, 给各个变量分配存储空间; (3)根据程序流程图,选用合适的指令编写程序, 完成源程序的设计; (4)在集成开发环境上调试,完成设计要求的功能。
示,图中一个方框代表一个单元。Cy表示进位。当 最低字节(低8位)运算时,如果令Cy为0,那么, 完成3个字节的加法运算进行了3次相同的单字节加 法操作,可以采用循环结构实现2个3字节数据的加 法运算。
+
Cy
Cy
Cy
Cy 0
图7.1 二进制数加法算法
08.12.2020
单片机原理及其应用
9
7.2 算术运算程序的设计
08.12.2020
单片机原理及其应用
11
7.2 算术运算程序的设计
+
DA A
DA A
DA A
图7.3 多位十进制加法算法
08.12.2020
单片机原理及其应用
12
7.2 算术运算程序的设计
例4 多位十进制减法 在第3章的例30中,我们介绍了2位十进制数减
法算法:X-Y=X+100-Y X+9AH-Y,把十进 制减法变换成二进制减法(求十进制减数的补码) 和十进制加法2步进行。多位十进制数减法也采用了 同样的算法。设被减数存放在20H开始的内部RAM 存储单元,减数存放在30H开始的存储单元,6位十 进制数减法的程序如下
08.12.2020
单片机原理及其应用
14
7.2 算术运算程序的设计
(2)6位十进制数加法程序:
MOV R0, #20H
MOV R1, #30H
MOV R5, #03H
CLR C
DOSUB:
ACALL SH_SUB
DJNZ R5, DOSUB
RET
08.12.2020
单片机原理及其应用
15
7.2 算术运算程序的设计