- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第五章汇编程序设计
微机原理与接口技术 第五章 汇编语言程序设计 5.2.2 循环结构程序 特点: 程序中含有可以重复执行的程序段 (循环体),采用循环程序可以有效地 缩短程序,减少程序占用的内存空间,使程序的结构紧凑、可读性好。 5.2.2 循环结构程序 单重循环与多重循环 定义:循环体内部不包括其他循环的程序称为 单重循环程序。 若循环中还包括有循环,称为多重循环(或循环嵌套) 例1 编程计算 设a、b 分别存于内部RAM 的30H、31H单元,结果C 存于内部RAM的40H单元。 说明: 这个问题中,计算某数 的平方可以用子程序 来实现, 两次调用该子程序,并求和便 得到所需结果。 参数传递:主程序中,将某数存放到累加器A中,作为子程序的入口参数;子程序中,将所求数的平方值存放在累加器A中,作为出口参数(即主程序的返回值)。 子程序的入口参数:A中存放某数的值。 子程序的出口参数:A中存放所求数的平方。 子程序的占用资源:A。 子程序如下: SQR: INC A MOVC A , @A+PC ;查平方表 RET TABLE: DB 0 , 1 , 4 , 9 , 16 DB 25 , 36 , 49 , 64 , 81 主程序如下: START: MOV A , 30H ACALL SQR ;调查表子程序 MOV R1 , A ;a2暂存R1中 MOV A , 31H ACALL SQR ;调查表子程序 ADD A , R1 MOV 40H , A END 排序程序设计(冒泡法) 5.4 查表程序设计 1、单字节查表 例1 设计一个将十六进制数转变为ASCII码的子程序。 设十六进制数存放在R0中的低四位,转换后仍送R0。 H_ASC: MOV A,R0 ANL A,#0FH ADD A,#2 MOVC A,@A+PC MOV R0,A RET TAB:DB 30H,31H,32H,33H,34H DB 35H,36H,37H,38H,39H DB 41H,42H,43H,44H,45H,46H 为什么加2? 2、 多字节Y值的查表程序 例2 某仪器的键盘程序中,其键值与对应程序入口 地址的关系如下: KEY: MOV DPTR,#TAB MOV A,20H RL A MOV 20H,A INC A MOVC A,@A+DPTR MOV 22H,A INC DPTR MOV A,20H MOVC A,@A+DPTR MOV 23H,A RET TAB: DW 0123H DW 0186H DW 0234H DW 0316H DW 0415H DW 0520H DW 0626H DW 0710H DW 0818H DW 0929H 0929 0818 0710 0626 0520 0415 0316 0234 0186 0123 9 8 7 6 5 4 3 2 1 0 5.5 子程序设计 是一种具有某种功能的程序段(如多字节乘法、数制编码转换等),其资源需要为所有调用程序共享。采用子程序可以达到简化程序结构的作用。 5.5.1 子程序结构与设计注意事项 1、定义子程序名,一般有一定的提示作用 2、参数传递 3、保护现场与恢复现场 4、通用性 通过寄存器、堆栈 传递参数 通过堆栈、工作寄存器 保护现场 5.5.2 子程序的调用与返回 1、调用过程:断点入栈;调用子程序入口地址; 2、返回过程:断点恢复 51单片机有两条子程序调用指令:ACALL addr11、 LCALL addr16;一条子程序返回指令RET。 例如:SUB1:PUSH PSW PUSH ACC PUSH R6 ∶ (此处省略了子程序的内容) POP R6 POP ACC POP PSW RET 5.5.3 子程序嵌套 嵌套深度问题与堆栈区安全 5.6 综合编程举例 请同
您可能关注的文档
最近下载
- 全套IECQQC080000-2017有害物质过程管理体系文件(HSPM).pdf VIP
- 中国东方资产管理股份有限公司招聘笔试题库2025.pdf
- 市场调查与分析: 数据分析网络调查报告撰写 (慕课版)王晓燕习题答案.docx
- 起重装卸机械操作工高级工培训大纲与教学内容概述.docx VIP
- 2025至2030中国中药饮片行业市场发展现状及竞争格局与投资发展报告.docx
- 2025年教科版六年级上册科学第一单元综合检测试卷及答案.pptx VIP
- 《企业质量管控与应用》课件.ppt VIP
- 吊顶施工合同范本.pdf VIP
- 公共建筑室内温度控制管理办法——空调系统节能运行管理制度.doc VIP
- 统编版八年级语文上册课件《诗词五首-渔家傲》.pptx VIP
文档评论(0)