单片机原理及应用 教学课件 作者 孙康岭刘永海 主编 单片机4.3.pptVIP

单片机原理及应用 教学课件 作者 孙康岭刘永海 主编 单片机4.3.ppt

  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.3 汇编语言程序的基本结构 在汇编语言程序设计中,常采用结构化的程序设计方法。 这种设计方法认为程序可以由顺序结构、分支结构和循环结构等组合而成。 每种结构只有一个入口和一个出口,整个程序也只有一个入口和一个出口。由于这种设计方法的巨大优越性,所以获得了广泛的应用。 一. 顺序结构程序设计 顺序程序是指无分支结构、无循环结构、也不调用子程序的程序,这是最简单的程序结构。顺序程序执行的流程是依指令在存储器中的存放顺序进行的,从第一条指令直到最后一条指令。 例:将片外RAM的1000H单元内容与片内RAM的20H单元内容相加结果存入片内RAM的21H单元。 二. 分支程序 一般情况下,程序的执行按指令在程序存储器中的存放顺序进行,有时根据实际需要可以通过判断、比较等运算的结果,改变程序执行的顺序,跳转到不同的目标指令,这种程序结构叫做分支结构。 分支结构是通过条件转移指令实现的,可分成单分支、双分支和多分支三种结构,如图4-5所示。 1. 单分支结构 单分支结构如图4-5(a)所示,若条件不成立,执行程序段A,然后执行公用程序段;若条件成立,直接执行公用程序段。 例:X为单字节有符号数,存放在片内RAM的30H单元,求其补码,存入片内RAM的31H单元。编程实现上述功能。 2.双分支结构 双分支结构如图4-5(b)所示,若条件成立,执行程序段A,然后执行公用程序段;若条件不成立,执行程序段B,然后执行公用程序段。 例:X、Y均为无符号数,X存放在片内RAM的30H单元,Y存放在片内RAM的31H单元。若X的值为0,则Y=0;否则Y=2X。编程实现上述功能。 三. 循环程序 在程序设计中,经常需要按某种控制规律重复执行某段程序,这时可以设计循环程序,这种结构有助于用简短的程序完成大量的处理任务。 这种按某一控制规律重复执行的程序称为循环程序。 循环程序一般由四个主要部分组成:  (1) 初始化部分:  (2) 处理部分:  (3) 循环控制部分: (4) 结束部分: 循环程序的操作流程有先执行后判断和先判断后执行两种结构。如图4-9所示。 ORG 0000H AJMP START ORG 0200H START:MOV R0,#30H MOV DPTR,#0100H MOV R7,#20H LOOP:MOVX A,@DPTR MOV @R0,A INC R0 INC DPTR DJNZ R7,LOOP SJMP $ END 1. 先执行后判断 图4-9(a)为“先执行后判断”的循环程序结构。 进入循环后,先执行循环处理部分,然后修改控制变量,根据控制条件判断是否结束循环。若不结束,进行下一次循环;否则,退出循环,执行结束部分。 例:在片内RAM的50H字节单元开始的数据表中,有20个字节的无符号数。找出最大值并存入R6中。 ORG 0000H AJMP START ORG 0100H START: MOV R0,#60H MOV R7,#36 MOV 50H,#0 LOOP:CLR C MOV A,@R0 SUBB A,50H JC NEXT MOV 50H,@R0 NEXT: INC R0 DJNZ R7,LOOP SJMP $ END P74.8 在内部RAM的60H单元开始存有一组单字节无符号数,数据个数为36,找出其中最大数并存入50H单元。 ORG 0000H AJMP START ORG 0100H START: MOV 50H,60H MOV R0,#61H MOV R7,#35 LOOP: CLR C MOV A,@R0 SUBB A,50H JC NEXT MOV 50H,@R0 NEXT: INC R0 DJNZ R7,LOOP SJMP $ END 四. 子程序 在实际应用中,有些通用性的问题在一个程序中可能要出现多次,如果完全相同的程序段在一个程序中反复多次出现,往往将其从主程序中独立出来,设计成称为子程序的形式,供主程序运行时随时调用。 子程序的结构与主程序基本相同,区别在于子程序的执行是由其它程序来调用的,执行完后仍要返回到调用它的程序。 在程序中需要执行这种操作的地方放置一条调用指令, 当程序执行到调用指令, 就转到子程序中完成规定的操作, 然后返回到原来的程序继续执行下

您可能关注的文档

文档评论(0)

带头大哥 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档