文档介绍:第7章汇编语言程序设计
伪指令
算术运算程序的设计
循环程序的设计
查表程序的设计
检索程序的设计
分支程序的设计
码制转换程序的设计
逻辑操作程序
主
要
内
容
2017/11/11
单片机原理及其应用
2
第7章汇编语言程序设计
程序设计是为了解决某一个问题,把指令(或
语句)按照一定的意图有序地组合在一起。
目前,基于MCS-51单片机的程序开发设计有采
用汇编语言和高级语言2种形式,高级语言有采用C
语言、BASIC语言、PLM语言等,大多数集成开发环
境(Integrated Development Environment,IDE)
软件都支持这2种形式。
2017/11/11
单片机原理及其应用
3
汇编程序设计的步骤:
(1)分析题目或课题的要求,正确理解解决什么问
题,如何解决问题、有哪些可利用的资源、对计算
精度的要求等;另外,了解应用系统硬件的结构和
功能与课题任务的关联。
(2)确定解决问题的方案,画出程序流程框图;
(2)根据解决方案,确定变量及其数据存储格式,
给各个变量分配存储空间;
(3)根据程序流程图,选用合适的指令编写程序,
完成源程序的设计;
(4)在集成开发环境上调试,完成设计要求的功能。
第7章汇编语言程序设计
2017/11/11
单片机原理及其应用
4
伪指令
伪指令(Pseudo Instruction)是汇编语言中起
解释说明的命令,它不是单片机的指令。
在单片机的集成开发环境中,向汇编系统说明
程序存储在程序存储器的哪个区域、本汇编语言程
序到何处结束、变量代号对应的单元地址或所代表
的数值等。在汇编时,伪指令不会产生目标代码,
不影响程序的执行。
2017/11/11
单片机原理及其应用
5
伪指令
常用的有以下几种伪指令:
(1)
ORG xxxxH
如: ORG 0100H
SUB: MOV R0, #30H
……
(2)赋值伪指令EQU
变量代号 EQU 数值
如: LEN EQU 20; 在程序中变量LEN的值为20H
Xdata EQU 4F8BH;在程序中变量Xdata的值
为4F8BH
2017/11/11
单片机原理及其应用
6
伪指令
(3)定义字节数据伪指令DB
[xxxxH] DB data
如: 2000H DB 30H ;
伪指令DB也可用来定义多个连续单元为常数,
即用来定义一组单字节数据组成的常数表。
如: ORG 1000H
DB 30H,31H,32H,33H,34H,35H,36H,
37H,38H,39H, 2EH,0DH
2017/11/11
单片机原理及其应用
7
伪指令
(4) 定义双字节数据伪指令DW
[xxxxH] DW data16
如: 1000H DW 0FDE1H
1100H DW 1345, 2241, 34556
(5) 位地址赋值伪指令BIT
变量代号 BIT 位地址
如: CS BIT
FLAG BIT
(6) 汇编结束伪指令END
END
2017/11/11
单片机原理及其应用
8
算术运算程序的设计
在MCS-51单片机指令系统中,算术运算指令仅
支持2个无符号的8位二进制数的运算,二进制数算
术运算是按字节的方式进行的。
2017/11/11
单片机原理及其应用
9
算术运算程序的设计
例1 多字节二进制加法。
以三字节无符号二进制数为例,
示,图中一个方框代表一个单元。Cy表示进位。当
最低字节(低8位)运算时,如果令Cy为0,那么,
完成3个字节的加法运算进行了3次相同的单字节加
法操作,可以采用循环结构实现2个3字节数据的加
法运算。
二进制数加法算法
2017/11/11
单片机原理及其应用
10
算术运算程序的设计
例2 多字节二进制减法。
多字节二进制减法与多字节二进制加法相似,图
。
减法算法