- 1、本文档共54页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[工学]第4章汇编语言程序设计知识
椭圆框 或桶形框 :表示程序的开始或结束。 矩形框 :表示要进行的工作。 菱形框 :表示要判断的事情,菱形框内的表达式表示要判断的内容。 圆圈 :表示连接点 指向线 :表示程序的流向 §4.4 汇编语言程序的基本结构 一、顺序程序 二、分支程序 三、循环程序 一、顺序程序 顺序程序是最简单的程序结构,即顺序结构。 程序按顺序一条一条地执行指令。 例:请编写能把20H单元内两个BCD数变成相应的ASCII码并放在22H(高位)和21H(低位) 分析:根据ACSII字符表,0~9的BCD数和ASCII码相差30H。所以,只要将20H中两个BCD数拆开,分别加30H ORG 00H MOV A, 20H ANL A, #0FH ADD A, #30H MOV 21H, A MOV A, 20H SWAP A ANL A, #0FH ADD A, #30H MOV 22H, A SJMP $ END 开始 (20H)→A (A) ∧#0F →A (A)+#30H→A (A) →21H (20H)→A SWAP A (A) ∧#0F →A (A)+30H→A (A) →22H ↓ (20H)→A (A) ∧#0F →A ↓ ↓ ↓ ↓ 例2:16位数和。设16位无符号二进制数一个存在30H31H中,一个存在32H和33H中(均是低位在前)中,求这两个数的和,结果存于R0R1(低位在前)。这两个16位数相加结果不会超出16位。 开始 (20H)→A (A) ∧#0F →A ↓ (30H)→A (A) +(32H) →R0 ↓ ↓ ↓ (31H)→A (A) +(33H) +Cy→R1 结束 ORG 00H MOV A, 30H ADD A, 32H MOV R0, A MOV A, 31H ADDC A, 33H MOV R1, A SJMP $ END 二、分支程序 程序分支是通过条件转移指令实现的,即根据条件对程序的执行进行判断、满足条件则进行程序转移,不满足条件就顺序执行程序。 分支程序又分为单分支和多分支结构。 多分支程序是首先把分支程序按序号排列,然后按序号值进行转移。 在MCS-51指令系统中,通过条件判断实现单分支程序转移的指令有:JZ、JNZ、CJNE、DJNZ等。此外还有以位状态作为条件进行程序分支的指令,如JC、JNC、JB、JNB、JBC等。使用这些指令可以完成0、1、正、负,以及相等、不相等作为各种条件判断依据的程序转移。 例:片内RAM 31H和32H两个单元中存有两个无符号数,将两个数中的小者存入30H单元。 开始 (31H) →A A=(32H)? Y Cy=0? N N Y A →30H (32H) →A 三、循环程序 在程序运行时,有时需要连续重复执行某段程序,可以使用循环程序。其结构包括四部分: 1、置循环初值 2、循环体(循环工作部分) 3、修改控制变量 4、循环控制部分 其组织方式如图4-2所示。 1、置循环初值 对于循环程序中所使用的工作单元,在循环开始时应置初值。 例如,工作寄存器设置计数初值,累加器A清0,以及设置地址指针、长度等。 2、循环体(循环工作部分) 重复执行的程序段部分,分为循环工作部分和循环控制部分。 循环控制部分每循环一次,检查结束条件,当满足条件时,就停止循环,往下继续执行其他程序 3、修改控制变量 在循环程序中,不许给出循环结束条件。 常见的是计数循环,当循环了一定的次数后,就停止循环。 在单片机中,一般用一个工作寄存器Rn作为计数器,对该计数器赋初值作为循环次数。每循环一次,计数器的值减1,即修改循环控制变量,当计数器的置件为0时,就停止循环。 4、循环控制部分 根据循环结束条件,判断是否结束循环。 MCS-51可采用DJNZ指令来自动修改控制变量并能结束循环。 置初值 循环体 循环修改 循环控制 退出循环 未完 完 (a) 置初值 循环体 循环修改 循环控制 退出循环 未完 完 (b) 图4-2 循环组织方式流程图 例1:统计字串长度。内存从21H开始有一字串,该字串以$结束,试统计该字串长度,结果存于20H单元中。 开始 A清零 字串首地址→R0 (R0)=$? Y N A →NUM A+=1 R0+=1 结束 例:已知内部RAM的BLOCK单元开始有一无符号数据块,块长在LEN单元。请编写求数据块中各数累加和并存人SUM单元的程序。 ORG 0200H LEN DATA 20H SUM DATA 21H BLOCK DATA 22H CLR A MOV R2,LEN ;块长送R2 M
您可能关注的文档
- [工学]离散数学--集合论.ppt
- [工学]离散数学06集合代数.pdf
- [工学]科研论文写作.ppt
- [工学]离散数学配套电子教案第一章.ppt
- [工学]科技信息检索20122第一章.ppt
- [工学]移动机器人转台的设计.pdf
- [工学]程序设计与数据结构复习题答案.doc
- [工学]章坚武版教材移动通信原理配套课件第1章.ppt
- [工学]第01章 光分析法基本概念.ppt
- [工学]立体构成 3.ppt
- 基于人工智能教育平台的移动应用开发,探讨跨平台兼容性影响因素及优化策略教学研究课题报告.docx
- 高中生物实验:城市热岛效应对城市生态系统服务功能的影响机制教学研究课题报告.docx
- 信息技术行业信息安全法律法规研究及政策建议教学研究课题报告.docx
- 人工智能视角下区域教育评价改革:利益相关者互动与政策支持研究教学研究课题报告.docx
- 6 《垃圾填埋场渗滤液处理与土地资源化利用研究》教学研究课题报告.docx
- 小学音乐与美术教师跨学科协作模式构建:人工智能技术助力教学创新教学研究课题报告.docx
- 《航空航天3D打印技术对航空器装配工艺的创新与效率提升》教学研究课题报告.docx
- 教育扶贫精准化策略研究:人工智能技术在区域教育中的应用与创新教学研究课题报告.docx
- 《区块链技术在电子政务电子档案管理中的数据完整性保障与优化》教学研究课题报告.docx
- 《中医护理情志疗法对癌症患者心理状态和生活质量提升的长期追踪研究》教学研究课题报告.docx
文档评论(0)