- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第四章MCS汇编语言程序设计
第4章 MCS-51汇编语言程序设计 4.1汇编语言程序设计概述 使用汇编语言作为程序设计语言的编程步骤与高级语言编程步骤类似,但又略有差异。其程序设计步骤大致可分为以下几步: ?1、熟悉与分析工作任务,明确其要求和要达到的工作目的、技术指标等。? 2、确定解决问题的计算方法和工作步骤。? 3、画程序状态工作流程图。 常用流程图中的符号包括: (1)起始框,形状为 ,用来表示过程的开始和结束。 (2)处理框,形状为 ,用来表示某种处理和运算。 (3)判断框,形状为 ,用来判断并测试某条件是否满足。 (4)流程线,形状为 ,用来表示流程图的路径和方向。 (5)换页连接点,形状为О ,当流程图在一页上画不完时,为了确保流程的完整准确,在相应的连接处画上相同的符号,以表示流程图从这里向页外某个地方(出口点)或从本页流程图外某一个地方流入这里(入口点)。? 4、分配内存工作单元,确定程序与数据区存放地址。? 5、按流程图编写源程序。? 6、上机调试、修改及最后确定源程序。 ? 在进行程序设计时,必须根据实际问题和所使用的单片机特点来确定算法,然后按照尽可能使程序简短和缩短运行时间两个原则编写程序,编程技巧需经大量实践后逐渐地加以提高。 4.2 汇编语言程序的基本程序结构 4.2.1顺序结构 4.2.2 分支结构 1、单分支程序 1、多分支程序 4.2.3 循环结构 4.2.3 子程序 4.2.1顺序结构 顺序结构程序是一种最简单、最基本的程序(也称为简单程序)。 特点:是按程序编写的顺序依次执行,程序流向不变 顺序结构程序是所有复杂程序的基础及基本组成部分。 在确定解决问题的方法时应分析清楚先做什么,后做什么。 ? 例1:设有两个4位十进制数,分别存放在23H、22H单元和33H,32H单元中,求它们的和,并送入43H,42H单元中去。 分析: (1)确定算法。由于两个四位BCD码相加,因此要从低位开始相加,每进行一次加法运算需要进行一次BCD码调整。 (2)画流程图,根据算法画图。 例2:双字节变补程序(设数据在R4R5中)。 请分析解决步骤,画出程序流图。 参考程序: MOV A,R5 ;取低字节 CPL A ADD A,#01H ;低字节变补 MOV R5,A MOV A, R4 ;取高字节 CPL A ADDC A,#00H ;高字节变补 MOV R4,A 4.2.2 分支结构 分支结构即根据不同的条件做不同的处理。它有两种形式(图),分别相当于高级语言中的if-then-else和case语句。前者一次引出两个分支(单分支),后者则可以引出多个分支(多分支)。它们的共同点是运行方向是向前的,在某一确定条件下,只能执行多个分支中的一支。 ?1、单分支程序 在MCS一51指令系统中,通过条件判断实现程序单分支的指令有JZ、JNZ、CJNE和DJNZ等.此外还有以位状态作为条件实现程序分支的指令,如:JC、JNC、JB、JNB和JBC等。使用这些指令,可以完成对0、正负、大小、溢出、状态等各种条件判断。 ? 例3:试编写计算下式的程序: a2+b 当b=10时 Y= a2-b 当b10 时 分析: (1)确定算法。先计算a2,再判断b是否大于等于10,根据b的值决定计算a2+b或a2-b。 (2)画流程图,根据算法可画流程图,如图所示。 参考程序: Y0 EQU 08H Y1 EQU 09H ORG 1020H START:MOV A,#a MOV B,A ;B←a MUL AB ;BA←a*a MOV R0,A MOV R1,B MOV A,#b CJNE A,#0AH,MMN ;不相等则转移 MM: ADD A,R0 MOV R0,A MOV A,#00H ADDC A,R1
原创力文档


文档评论(0)