汇编语言程序设计课件.ppt
《汇编语言程序设计课件.ppt》由会员分享,可在线阅读,更多相关《汇编语言程序设计课件.ppt(54页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第7章 汇编语言程序设计,7.1 伪指令7.2 算术运算程序的设计7.3 循环程序的设计7.4 查表程序的设计7.5 检索程序的设计7.6 分支程序的设计7.7 码制转换程序的设计7.8 逻辑操作程序,主要内容,2019/10/21,单片机原理与应用,2,第7章 汇编语言程序设计,程序设计是为了解决某一个问题,把指令(或语句)按照一定的意图有序地组合在一起。 目前,基于MCS-51单片机的程序开发设计有采用汇编语言和高级语言2种形式,高级语言有采用C语言、BASIC语言、PLM语言等,大多数集成开发环境(Integrated Development Environment,IDE)软件都支持这
2、2种形式。,2019/10/21,单片机原理与应用,3,汇编程序设计的步骤: (1)分析题目或课题的要求,正确理解解决什么问题,如何解决问题、有哪些可利用的资源、对计算精度的要求等;另外,了解应用系统硬件的结构和功能与课题任务的关联。(2)确定解决问题的方案,画出程序流程框图;(2)根据解决方案,确定变量及其数据存储格式,给各个变量分配存储空间;(3)根据程序流程图,选用合适的指令编写程序,完成源程序的设计;(4)在集成开发环境上调试,完成设计要求的功能。,第7章 汇编语言程序设计,2019/10/21,单片机原理与应用,4,7.1 伪指令,伪指令(Pseudo Instruction)是汇编
3、语言中起解释说明的命令,它不是单片机的指令。 在单片机的集成开发环境中,向汇编系统说明程序存储在程序存储器的哪个区域、本汇编语言程序到何处结束、变量代号对应的单元地址或所代表的数值等。在汇编时,伪指令不会产生目标代码,不影响程序的执行。,单片机原理与应用,5,7.1 伪指令,常用的有以下几种伪指令:(1)设置起始地址伪指令ORG ORG xxxxH如: ORG 0100H SUB: MOV R0, #30H (2)赋值伪指令EQU 变量代号 EQU 数值如: LEN EQU 20; 在程序中变量LEN的值为20H XdataEQU 4F8BH;在程序中变量Xdata的值 为4F8BH,2019
4、/10/21,单片机原理与应用,6,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,2019/10/21,单片机原理与应用,7,7.1 伪指令,(4) 定义双字节数据伪指令DW 标号: DWdata16如:ORG 3000HDATA: DW 0FDE1H.RET DATAA: DW 1345, 2241, 34556(5) 位地址赋值
5、伪指令BIT 变量代号BIT位地址如: CSBITP2.0 FLAG BIT20H.6(6) 汇编结束伪指令END END,2019/10/21,单片机原理与应用,8,7.2 算术运算程序的设计,在MCS-51单片机指令系统中,算术运算指令仅支持2个无符号的8位二进制数的运算,二进制数算术运算是按字节的方式进行的。,2019/10/21,单片机原理与应用,9,7.2 算术运算程序的设计,例1 多字节二进制加法。,二进制数加法算法,2019/10/21,单片机原理与应用,10,7.2 算术运算程序的设计,例2 多字节二进制减法。,减法算法,2019/10/21,单片机原理与应用,11,7.2 算
6、术运算程序的设计,例3 多位十进制数加法。,多位十进制加法算法,2019/10/21,单片机原理与应用,12,7.2 算术运算程序的设计,例4 多位十进制减法 2位十进制数减法算法: XYX100Y X9AHY把十进制减法变换成二进制减法(求十进制减数的补码)和十进制加法2步进行。多位十进制数减法也采用了同样的算法。,2019/10/21,单片机原理与应用,13,7.2 算术运算程序的设计,(1)2位十进制数减法子程序:入口条件:R0指出被减数所在单元的地址;R1指出减数 所在单元的地址;出口条件:R0指出差所在单元的地址,进位在Cy中; SH_SUB: MOV A, #9AHSUBB A,
7、R1ADD A, R0DA AMOV R0, AINC R0INC R1CPL CRET,2019/10/21,单片机原理与应用,14,7.2 算术运算程序的设计,(2)6位十进制数加法程序:MOV R0, #20HMOV R1, #30HMOV R5, #03HCLR C DOSUB:ACALL SH_SUB DJNZ R5, DOSUB RET,2019/10/21,单片机原理与应用,15,7.2 算术运算程序的设计,例5 多字节数二进制乘法,2019/10/21,单片机原理与应用,16,7.2 算术运算程序的设计,例6 多字节二进制除法 2个多字节无符号二进制数的除法是采用移位和减法运算
8、实现的,实现过程与进行十进制数乘法形似,每次进行除法运算时,如果余数大于减数(够减)则商1,否则,商0。该算法要求被除数的高八位数据必须小于除数,否则,作为溢出处理,子程序把标志位OV的状态置为1,从子程序返回。,2019/10/21,单片机原理与应用,17,7.2 算术运算程序的设计,除法程序流程图,2019/10/21,单片机原理与应用,18,7.3 循环程序的设计,(一)循环结构的组成 循环结构由4部分组成:初始化部分、循环处理部分、循环控制部分和循环结束部分。,循环结构组成,2019/10/21,单片机原理与应用,19,7.3 循环程序的设计,汇编语言程序设计中常见的典型循环结构,(1
9、)先处理后判断的结构,(2)先判断后处理的结构,2019/10/21,单片机原理与应用,20,7.3 循环程序的设计,(二)循环程序设计举例 例7 设单片机系统采集的8个单字节数据存储在单片机内部RAM的30H开始的连续单元中,求它们的均值。 一组数据平均值的公式为: 其中, 为第i个数据,N为数据的个数。 要计算出平均值需要进行2种运算:求数据的总和、数据总和除以数据个数。(1)求数据的总和算法如下:,2019/10/21,单片机原理与应用,21,7.3 循环程序的设计,多个数据求总和的流程图,2019/10/21,单片机原理与应用,22,7.3 循环程序的设计,(2)求均值,采用右移除以2
10、的算法实现。,2019/10/21,单片机原理与应用,23,7.3 循环程序的设计,例8 设有一个字符串以回车符(ASCII码为0DH)为结束标志,并存放在内部RAM的40H单元开始的连续存储单元中,编写测试字符串长度的程序。,2019/10/21,单片机原理与应用,24,7.3 循环程序的设计,测试字符串长度的程序流程框图,2019/10/21,单片机原理与应用,25,7.4 查表程序的设计,查表程序是一种在单片机应用系统中常用的程序,例如,显示输出时,利用查表程序提取字型编码,数值运算时,利用它可以避免进行复杂的程序运算或转换运算,可以完成数据插补、修正、计算、转换等功能 。,2019/1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编 语言程序设计 课件
限制150内