版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单元汇编语言程序设计第1页,课件共19页,创作于2023年2月
4.2
任务八 LED显示电路
4.2.4相关知识子程序的概念通常把这些基本操作功能编制为程序段作为独立的子程序,以供不同程序或同一程序反复调用。在程序中需要执行这种操作的地方放置一条调用指令,当程序执行到调用指令,就转到子程序中完成规定的操作,并返回到原来的程序继续执行下去。子程序结构能供调用的子程序,其结构应具备:必须标明子程序的入口地址,又称首地址,以便程序调用必须以返回指令RET结束子程序。
第2页,课件共19页,创作于2023年2月
4.2
任务八 LED显示电路
4.2.4相关知识参数传递在使用调用指令不附带任何参数时,参数的互相传递要由设计者通过程序安排。一般可采用以下方法:传递数据。将需传递的参数通过工作寄存器Rn或累加器A传递给子程序。即在主程序调用子程序前将参数差额主选定的工作寄存器组R0~R7、累加器A中,供子程序读取或者将参数在调用前先压入堆栈,进入子程序后再从堆栈中读出。传递地址。将要传递的参数存放在数据存储器中,将其地址通过工作寄存器R0、R1或数据指针DPTR传递,供子程序读取参数。
第3页,课件共19页,创作于2023年2月
4.2
任务八 LED显示电路
4.2.4相关知识现场保护主程序的现场保护和恢复。子程序(包括中断服务程序)是个独立的程序段,在子程序执行过程中常需用到通用单元,例如:工作寄存器R0~R7、累加器A、数据指针DPTR,以及有关标志、状态位等。而这个单元中的原内容在调用子程序结束之后的主程序中仍有用,需进行保护,称现场保护。在执行完子程序并返回继续执行主程序前应恢复其原内容,称现场恢复。一般有两种现场保护/恢复方式:第4页,课件共19页,创作于2023年2月
4.2
任务八 LED显示电路
4.2.4相关知识调用前保护、返回后恢复。这种方式是在主程序逻辑的调节器用指令前进行现场保护,在调用指令之后,即返回原断点处进行恢复现场。其程序结构如下所示:
主程序
PUSHPSW;将PSW、A、DPTR等入栈保护PUSHAPUSHBPUSHDPLPUSHDPHPUSHPSW,#10H;选用工作寄存器组2,将0组保护第5页,课件共19页,创作于2023年2月
4.2
任务八 LED显示电路
4.2.4相关知识LCALLaddr16;调用子程序addr16POPDPH;出栈POPDPLPOPBPOPAPOPPSW这种结构灵活,可根据实际需要实现现场保护/恢复。调用后保护、返回前恢复。这种结构是在子程序的开始部分进行现场保护,而在子程序的结束部分、返回指令前恢复。其程序结构如下所示:
第6页,课件共19页,创作于2023年2月
4.2
任务八 LED显示电路
4.2.4相关知识;子程序ADDR:PUSHPSW 现场保护
PUSHAPUSHBPUSHDPLPUSHDPHMOVPSW,#08H;选用工作寄存器组1,0组保护;子程序主体
POPDPH现场恢复POPDPLPOPB第7页,课件共19页,创作于2023年2月
4.2
任务八 LED显示电路
4.2.4相关知识POPAPOPPSWRET;返回
这是子程序标准格式,现场保护/恢复内容固定,但程序规范、清晰。上述两种方式可由设计者任选。
第8页,课件共19页,创作于2023年2月
4.2
任务八 LED显示电路
4.2.4相关知识子程序特性随着汇编语言程序设计技术的发展,子程序的应用越显重要。因此,对子程序的设计具有较高要求,除通常在程序设计中应遵循的原则外,还应具备以下特性:通用性严格讲,子程序有通用和专用两种。前者如数制转换、浮点运算等子程序可广泛应用于同系列单片机的任何应用系统,后者仅限用于同一个应用系统中。特别是前者,都应注意子程序的通用性。为了使子程序具有通用性,在设计中要解决的一个重要问题,就是确定哪些变量作为参量以及何传递参量。
第9页,课件共19页,创作于2023年2月
4.2
任务八 LED显示电路
4.2.4相关知识可浮动性可浮动性是指子程序段可安置在程序存储器的任何区域。为此,在子程序中应避免选用绝对转移地址。可递归和可重入性子程序能自己调用自己和同时能被多个任务(或多个用户程序)调用的特性,分别称之为子程序的可递归性和可重入性。这类子程序常在庞大而复杂的程序中应用,在单片机应用程序设计中较少用到。
第10页,课件共19页,创作于2023年2月
4.2
任务八 LED显示电路
4.2.4相关知识子程序说明文件对于通用子程序,为便于各种应用程序的选用,要求在子程序编制、调试完成后应提供一个说明文件。其内容应包含以下内容。子程序名。标明子程序功能的名称。子程序功能。简要说明子程序能完成的主要功能,包括重要算法、参量要求及有关存储单元配置等。子程序调用。指明本子程序还需调用哪些子程序。附子程序流程图及程序清单。由于子程序结构在程序设计中应用极为普遍,因此,一般在指令集中均设有子程序调用指令。AT89S系列的指令集中,考虑到程序存储器空间的限制和节省,特设置了绝对调用和长调两条指令,供实际应用时选择。
第11页,课件共19页,创作于2023年2月
4.4任务八 LED显示电路4.2.4相关知识
查表程序结构查表程序是一种常用程序,它广泛使用于LED显示控制、打印机打印控制、数据补偿、数值计算、转换等功能程序中,这类程序具有简单、执行速度快等特点。所谓查表法,就是预先将满足一定精度要求的表示变量与函数值之间关系的一张表求出,然后把这张表存于单片机的程序存储器中,这时自变量值为单元地址,相应的函数值为该地址单元中的内容。查表,就是根据变量X在表格中查找对应的函数值Y,使Y=f(X)。第12页,课件共19页,创作于2023年2月
4.4任务八 LED显示电路4.2.4相关知识两条查表指令:
MOVCA,@A+PCMOVCA,@A+DPTR选用DPTR为首地址指针时表格参量可存放在64KB范围内的任何区段,可供无限次查表,选用PC当前值为首地址指针时表硌参量必须设置在紧跟查表指令(MOVC)之后,基本上只能一次性查表,编程时应根据实际情况进行选择,一般以选择DPTR为基址指针的查表指令灵活、方便,可省去一些麻烦。
第13页,课件共19页,创作于2023年2月
4.4任务八 LED显示电路4.2.4相关知识选用DPTR作为基地址的查表指令时,其操作可分3步进行:将待查表格的首地址置入DPTR基址寄存器;将待查的表格具体项数值置入变址寄存器A中;执行指令
MOVCA,@A+DPTR将查表结果值读入累加器A中。
第14页,课件共19页,创作于2023年2月
4.4任务八 LED显示电路4.2.4相关知识选用PC当前值作为基地址的查表指令时,由于PC的当前值正是查表指令的下一条指令的第一个字节的地址值,亦即表格数据串的首地址,当执行完查表指令,读取到表格数据后仍需从这个PC的当前值继续往下执行,显然两者发生重叠,为解决这个矛盾,势必将表格下移若干个字节,以便设置一条跳转指令跳过表格串继续安排顺序往下执行的程序。把表格串下移的字节数加到变址寄存器A中,即在查表指令前加一条指令。ADDA,#dataA中为经动态运算得到的待查表格数的项数。Data为表格串下移的字节数,亦即PC的当前值到下移后的表格串首地址的距离数。这个距离数显然不宜太大,因为它将影响表格串的长度,两者之和不能超过565B,这种表格一般属一次性查找,因为PC的当前值随程序的执行而改变
第15页,课件共19页,创作于2023年2月
4.4任务八 LED显示电路程序设计举例【例4.8】4位BCD码整数转换成二进制整数入口参数:BCD码字节地址指针R0,位数存于R2中。出口参数:二进制数存于R3R4中。算法:A=103a3+102a2+10a1+a0程序流程如7.7所示。子程序清单如下:
BCDA:PUSHPSW;现场保护PUSHAPUSHBMOVPSW,#08HMOVR3,#00HMOVR2,#3;BCD码D的位数MOVA,@R0;a0-R4第16页,课件共19页,创作于2023年2月
4.4任务八 LED显示电路程序设计举例MOVR4,ABCKB:MOVA,R3;(R3R4)×10
MOVB,#10;R4MULABMOVR4,AXCHA,BMOVB,#10XCHA,R3MULABADDA,R3XCHA,R4INCR0;(R0)+1-R0ADDA,@R0;(R3R4)-((R0))-RR3R4第17页,课件共19页,创作于2023年2月
4.4任务八 LED显示电路程序设计举例XCHA,R4ADDCA,#0MOVR3,ADJNZR2,BCDB;循环n-1次POPB;恢复现场PIPAPOPPSWRET;返回
上例中的R2内容是BCD码的位数n,本例中n=4,即两个字节4位
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年新鲜度保障冷藏运输协议范例
- 2024年担保协议法律效力分析
- 地方政府招商中介服务协议样本
- 2024年软件系统定制协议模板大全
- 彩钢建筑安装工程协议2024年详规
- 2024年协议附加条款定制模板
- DB11∕T 1724-2020 淡水养殖水体常用微生态制剂使用技术规范
- DB11∕T 1685-2019 天然草坪足球场场地设计与建造技术规范
- 2024年员工招聘协议详尽样本
- 2024年度销售岗位劳动协议
- 电气职业生涯发展展示
- 2023-2024学年苏科版七年级数学上册《3.6整式的加减》同步练习题(附答案)
- 高考英语复习读后续写人与自然(4)讲义
- 数字经济概论 习题参考答案 李三希
- “教学评一致性”意义与含义
- 人工智能人才培养的智能医学与健康大数据分析技术
- 涉密内网分级保护设计方案
- 《学术不端行为》课件
- 花茶大学生创新创业计划书
- 燃烧器调试报告
- 《中国传统教育》课件
评论
0/150
提交评论