- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第4章-80C51单片机汇编语言程序设计
4.1 单片机程序程序设计语言概述 4.2 汇编语言程序的基本结构形式 4.2.2 分支程序结构 (a)使用多条CJNE指令,通过逐次比较,实现分支程序转移 (b)使用查转移指令表的方法实现多分支程序转移 4.2.3 循环程序结构 4.3 80C51单片机汇编语言程序设计举例 4.4 单片机汇编语言源程序的编辑和汇编 4.5 80C51单片机汇编语言伪指令 补充内容:子程序结构 (1)子程序的编程原则 在实际的单片机应用系统软件设计中,为了程序结构更加清晰,易于设计,易于修改,增强程序可读性,基本上都要使用子程序结构。子程序作为一个具有独立功能的程序段,编程时需遵循以下原则: a)子程序的第一条指令必须有标号,明确子程序入口地址; b)以返回指令RET结束子程序; c)子程序说明部分; 子程序名称:提供给主程序调用的名字,通常用符号或子程 序第一条语句的标号来表示。 子程序功能:简要说明子程序能完成的主要功能。 子程序入口参数:主程序需要向子程序提供的参数。 3000H BRTAB:AJMP ER; 转删除分支程序 3001H 3002H AJMP DS; 转读数据分支程序 3003H 3004H AJMP XS; 转写数据分支程序 3005H 3006H AJMP CR; 转插入分支程序 3007H ORG 3100H 3100H ER:………………; 删除分支程序 ORG 3200H 3200H DS:………………; 读数据分支程序 ORG 3300H 3300H XS:………………; 写数据分支程序 ORG 3400H 3400H CR:………………; 插入分支程序 END 返回 MCS-51汇编语言指令系统没有专用的循环指令,但可以使用条件转移指令通过条件判断来控制循环是继续还是结束。 循环程序一般由四个主要部分组成: (1)初始化部分:为循环程序做准备,如规定循环次数、给各变量和地址指针预置初值。 (2)处理部分: 为反复执行的程序段,是循环程序的实体, 也是循环程序的主体。 (3)循环控制部分: 其作用是修改循环变量和控制变量,并判断循环是否结束,直到符合结束条件时,跳出循环为止。 (4)结束部分: 这部分主要是对循环程序的结果进行分析、处理和存放。 单循环程序一般有以下两种典型结构: 双重循环程序的结构: 在应用系统程序设计时,有时经常需要将数据存储器中各部分地址单元作为工作单元,以存放程序执行的中间值或执行结果, 因此,在使用这些工作单元之前,必须将工作单元清零。工作单元清零可用循环程序完成。 例:假设在内部RAM区,开辟96个工作单元,工作单元首地址为20H,则工作单元清零程序子程序如下: ORG 1000H CLR0:MOV R0, #20H;循环初始化部分 MOV R7, #96; CLR A LOOP:MOV @R0, A; 循环体部分 INC R0; 修改变量 DJNZ R7, LOOP;循环控制部分 RET END 思考题(补充作业题):如采用CJNE指令,应如何修改程序? 例:两个三字节二进制无符号数相加,被加数放在内部RAM 20H~22H单元(低字节存放在低地址单元,高字节存放在高地址单元,即低位在前,高位在后),加数放在2AH~2CH单元,和放在20H~22H单元,最高位如有进位,则放在23H单元中。 解:数据类型(二、十进制数,有、无符号数);数据结构(升、降序排列) 低字节(8位) 中字节(8位) 高字节(8位) 加数(N2) 低字节(8位) 中字节(8位) 高字节(8位) 被加数(N1) 进位位 高字节(8位) 中字节(8位) 低字节(8位) 高字节(8位) 中字节(8位) 低字节(8位) 高字节(8位) 中字节(8位) 低字节(8位) 22H单元 2CH单元 22H单元 2BH单元 2AH单元 加数(N2) 20H单元 20H单元 21H单元 21H单元 23H单元 和(N3) 被加数(
文档评论(0)