第7章汇编语言程序设计.ppt
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MOV R0, #20H
MOV R1, #30H
MOV R5, #03H
CLR C
DOSUB:
ACALL SH_SUB
DJNZ R5, DOSUB
RET
2020-11-9
谢谢欣赏
14
7.2 算术运算程序的设计
例5 多字节数二进制乘法
XH
XL
× YH
YL
×
XYH3
XH XYH2
XL YH XYH1
×
XYL3
XH XYL2
XL YL XYL1
2020-11-9
XYH3
XYL3 XYH2
XYL2 XYH1
XYL1
XY4
XY3
XY2
XY1
谢谢欣赏
15
7.2 算术运算程序的设计
例6 多字节二进制除法 2个多字节无符号二进制数的除法是采用移位和
减法运算实现的,实现过程与进行十进制数乘 法形似,每次进行除法运算时,如果余数大于减数 (够减)则商1,否则,商0。
7.2 算术运算程序的设计
例4 多位十进制减法 2位十进制数减法算法: X-Y=X+100-Y X+9AH-Y 把十进制减法变换成二进制减法(求十进制减数 的补码)和十进制加法2步进行。多位十进制数减 法也采用了同样的算法。
2020-11-9
谢谢欣赏
12
7.2 算术运算程序的设计
(1)2位十进制数减法子程序: 入口条件:R0指出被减数所在单元的地址;R1指出减数
FLAG
BIT 20H.6
(6) 汇编结束伪指令END
END
2020-11-9
谢谢欣赏
7
7.2 算术运算程序的设计
在MCS-51单片机指令系统中,算术运算指令仅 支持2个无符号的8位二进制数的运算,二进制数 算术运算是按字节的方式进行的。
2020-11-9
谢谢欣赏
8
7.2 算术运算程序的设计
例1 多字节二进制加法。
2020-11-9
谢谢欣赏
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的值
为4F8BH
2020-11-9
谢谢欣赏
5
7.1 伪指令
(3)定义字节数据伪指令DB [标号 ] DB data
如: 2000H DB 30H ; 伪指令DB也可用来定义多个连续单元为常数,
即用来定义一组单字节数据组成的常数表。 如: ORG 1000H
DB 30H,31H,32H,33H,34H,35H,36H, 37H,38H,39H, 2EH,0DH
2020-11-9
谢谢欣赏
6
7.1 伪指令
(4) 定义双字节数据伪指令DW
[标号:] DW data16
如: ORG 3000H
DATA: DW 0FDE1H
…..
RET
DATAA: DW 1345, 2241, 34556
(5) 位地址赋值伪指令BIT
变量代号
BIT 位地址
如: CS
BIT P2.0
所在单元的地址; 出口条件: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
2020-11-9
谢谢欣赏
13
7.2 算术运算程序的设计
(2)6位十进制数加法程序:
第7章 汇编语言程序设计
7.1 伪指令
主
7.2 算术运算程序的设计
要
7.3 循环程序的设计 7.4 查表程序的设计
内
7.5 检索程序的设计
7.6 分支程序的设计
容
7.7 码制转换程序的设计
7.8 逻辑操作程序
2020-11-9
谢谢欣赏
1
第7章 汇编语言程序设计
程序设计是为了解决某一个问题,把指令(或 语句)按照一定的意图有序地组合在一起。
N
商0 商1
除法程序流程图
除法完?
N
Y 四舍五入处理
清溢出标志
结束
2020-11-9
谢谢欣赏
17
7.3 循环程序的设计
(一)循环结构的组成 循环结构由4部分组成:初始化部分、循环处理
部分、循环控制部分和循环结束部分。
开始
初始化
循环处理 修改控制变量
循环结束? 结束部分
结束
循环结构组成
百度文库2020-11-9
目前,基于MCS-51单片机的程序开发设计有采 用汇编语言和高级语言2种形式,高级语言有采用C 语言、BASIC语言、PLM语言等,大多数集成开发环 境(Integrated Development Environment,IDE) 软件都支持这2种形式。
2020-11-9
谢谢欣赏
2
第7章 汇编语言程序设计
2020-11-9
谢谢欣赏
3
7.1 伪指令
伪指令(Pseudo Instruction)是汇编语言中起 解释说明的命令,它不是单片机的指令。
在单片机的集成开发环境中,向汇编系统说明 程序存储在程序存储器的哪个区域、本汇编语言程 序到何处结束、变量代号对应的单元地址或所代表 的数值等。在汇编时,伪指令不会产生目标代码, 不影响程序的执行。
该算法要求被除数的高八位数据必须小于除 数,否则,作为溢出处理,子程序把标志位OV的 状态置为1,从子程序返回。
2020-11-9
谢谢欣赏
16
7.2 算术运算程序的设计
开始
被除数的高八位大于除数 Y
置溢出标志
N 除法(移位)次数
结束
余数左移一位
保留余数移出的最高位
余数的高八位减去除数
Y
够减否?
差为余数的高八位
+
Cy
Cy
Cy
Cy 0
二进制数加法算法
2020-11-9
谢谢欣赏
9
7.2 算术运算程序的设计
例2 多字节二进制减法。
-
Cy
Cy
Cy 0
减法算法
2020-11-9
谢谢欣赏
10
7.2 算术运算程序的设计
例3 多位十进制数加法。
+
DA A
DA A
DA A
多位十进制加法算法
2020-11-9
谢谢欣赏
11
汇编程序设计的步骤: (1)分析题目或课题的要求,正确理解解决什么问 题,如何解决问题、有哪些可利用的资源、对计算 精度的要求等;另外,了解应用系统硬件的结构和 功能与课题任务的关联。 (2)确定解决问题的方案,画出程序流程框图; (2)根据解决方案,确定变量及其数据存储格式, 给各个变量分配存储空间; (3)根据程序流程图,选用合适的指令编写程序, 完成源程序的设计; (4)在集成开发环境上调试,完成设计要求的功能。
谢谢欣赏
18