[工学]第4章编程修改.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[工学]第4章编程修改

㈡命令用法 ① 在同一个程序中ORG后面的地址应从小到大 ②在同一个程序中ORG后面的地址不准有重复 例1:ORG 3000H TAB:DB 00H,01H,04H,09H 4.2 汇编语言程序设计 一、 程序的基本结构 用汇编语言进行程序设计的过程和用高级语言进行程序设计相类似。 对于比较复杂的问题, 首先要掌握解决它的方法和步骤——算法, 有了合适的算法常常可以起到事半功倍的效果; 其次, 就是用操作框、 带箭头流程线、 框内外必要的文字说明所组成的流程图来描述算法; 最后是根据流程图用程序设计语言来编制程序。 二、程序的基本算法结构 顺序结构、 分支(选择)结构和循环结构。 顺序结构如图 1 所示, 虚框内A框和B框分别代表不同的操作, 而且是A、 B顺序执行。 图2: 图3: 4.2.2 分支程序设计 在编写分支程序时, 关键是如何判断分支的条件。 在MCS—51 单片机指令系统中, 有JZ(JNZ)、 CJNE、 JC(JNC)及JB(JNB)等丰富的控制转移指令, 它们是分支结构程序设计的基础, 可以完成各种各样的条件判断、 分支。 编程指令: 循环次数已知:DJNZ 循环次数未知:条件转移指令 4.2.5 子程序设计 1 子程序设计方法 2 子程序设计实例 1 子程序设计方法 子程序是指完成某一专门任务并能被其他程序反复调用的程序段。调用子程序的程序称为主程序或调用程序。使用子程序的过程称为调用子程序。子程序执行完后返回主程序的过程称为子程序返回。 主程序和子程序是相对的,同一程序既可以作为另一程序的子程序,也可以有自己的子程序。也就是说,子程序是允许嵌套的,嵌套深度和堆栈区的大小有关。 采用子程序能使整个程序结构简单,缩短程序设计时间,减少对存储空间的占用。 1 子程序设计方法 子程序的特点和设计方法 子程序具有通用性和独立性,以满足所有调用程序实现资源共享。 子程序的第一条指令的地址称为子程序的入口地址,该指令前应有标号。 合理地确定子程序的参数传递方式:入口参数是子程序需要的原始参数,由主程序通过相关的工作寄存器、特殊功能寄存器、片内RAM或堆栈等传送给子程序;出口参数是根据入口参数执行子程序后获得的结果,由子程序通过相关的工作寄存器、特殊功能寄存器、片内RAM或堆栈等传递给主程序。 在主程序中可以用调用指令调用子程序,在子程序末尾用RET返回指令从子程序返回主程序。 1 子程序设计方法 根据需要保护现场和恢复现场。在子程序的开始,使用压栈指令把需要保护的内容压入堆栈;在返回主程序前,使用弹出指令把堆栈中保护的内容送回原来的存储单元中。 子程序中有可能要使用累加器A或工作寄存器,在子程序使用它们之前,把它们中可能存有的主程序的中间结果保存起来,这一过程称为保护现场。在子程序执行完并将返回主程序之前,再将这些中间结果取出,送回到累加器A或原来的工作寄存器中,这一过程称为恢复现场。 子程序中应尽量使用相对转移指令而不使用其他转移指令,以便子程序放在内存的任何区域都能被主程序调用。 要正确地设置堆栈指针,以避免堆栈区与工作寄存器或其他存储单元发生冲突。 1 子程序设计方法 传送子程序参数的方法。 利用寄存器或片内RAM传送参数。可以把入口参数存放到寄存器或片内RAM中传送给子程序,也可以把出口参数存放到寄存器或片内RAM中传送给主程序。 利用寄存器传送参数的地址。把存放入口参数的地址通过寄存器传送给子程序,子程序根据寄存器中存放入口参数的地址便可找到入口参数并对它们进行相应操作;出口参数的地址也可通过寄存器传送给主程序。 利用堆栈传送参数。可以用压栈指令PUSH把入口参数压入堆栈传送给子程序,也可以使用压栈指令PUSH把出口参数压入堆栈传送给主程序。 2 子程序设计实例 4.2.6 查表程序设计 1 查表程序设计方法 2 查表程序设计实例 1 查表程序设计方法 在单片机的实际应用中,经常要对一些数据进行函数运算,例如求平方、正弦函数等,为了提高单片机执行程序的速度,一般将某函数的全部函数值按一定的规律编成表格存放到程序存储器中。 查表程序就是根据某数据的函数运算要求,按索引号从程序存储器中查找与之相对应的函数值的程序结构。 设计查表程序时,主要通过两条查表指令实现查表功能。 1 查表程序设计方法 查表程序的特点和设计方法。 查表指令“MOVC A,@A+DPTR”的查表过程比较简单。查表时首先需要把数据表格起始地址存入DPTR,然后把所查数据的索引值送入累加器A中,最后使用查表指令“MOVC A,@

文档评论(0)

qiwqpu54 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档