- 1、本文档共70页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
汇编语言程序设计简介课件
例10 在内部 RAM中从 50H单元开始的连续单元依次存放了一串字符, 该字符串以回车符为结束标志, 要求测试该字符串的长度。 程序如下: START: MOV R2, #0FFH MOV R0, #4FH ; 数据指针R0置初值 LOOP: INC R0 INC R2 CJNE @R0, #0DH, LOOP RET 4.2.4 散转程序设计 散转程序是分支程序的一种, 它可根据运算结果或输入数据将程序转入不同的分支。MCS - 51 指令系统中有一条跳转指令JMP@A+DPTR, 用它可以很容易地实现散转功能。该指令把累加器的 8 位无符号数与 16 位数据指针的内容相加, 并把相加的结果装入程序计数器PC, 控制程序转向目标地址去执行。此指令的特点在于, 转移的目标地址不是在编程或汇编时预先确定的, 而是在程序运行过程中动态地确定的。目标地址是以数据指针 DPTR的内容为起始的 256 字节范围内的指定地址, 即由 DPTR的内容决定分支转移程序的首地址, 由累加器 A的内容来动态选择其中的某一个分支转移程序。 例 11 根据工作寄存器R0 内容的不同, 使程序转入相应的分支。 (R0)=0 对应的分支程序标号为PR0; (R0)=1 对应的分支程序标号为PR1; (R0)=N 对应的分支程序标号为PRN。 … 程序如下: LP0: MOV DPTR, #TAB ; 取表头地址 MOV A, R0 ADD A, R0 ; R0内容乘以2 JNC LP1 ; 无进位转移 INC DPH ; 加进位位 LP1: JMP @A+DPTR; 跳至散转表中相应位置 TAB: AJMP PR0 AJMP PR1 AJMP PRN … … 本例程序仅适用于散转表首地址 TAB和处理程序入口地址 PR0, PR1, …, PRN在同一个 2 KB范围的存储区内的情形。若超出 2 KB范围可在分支程序入口处安排一条长跳转指令, 可采用如下程序: MOV DPTR, #TAB MOV A, R0 MOV B, #03H ; 长跳转指令占 3 个字节 MUL AB XCH A, B ADD A, DPH MOV DPH, A XCH A, B JMP @A+DPTR; 跳至散转表中相应的位置 TAB: LJMP PR0; 跳至不同的分支 LJMP PR1 LJMP PRN … … 4.2.5 子程序和参数传递 一、 子程序的概念 通常把这些基本操作功能编制为程序段作为独立的子程序, 以供不同程序或同一程序反复调用。在程序中需要执行这种操作的地方放置一条调用指令, 当程序执行到调用指令, 就转到子程序中完成规定的操作, 并返回到原来的程序继 续执行下去。 二、 子程序的调用 调用子程序的指令有“ACALL”和“LCALL”, 执行调用指令时, 先将程序地址指针PC改变(“ACALL”加 2, “LCALL”加 3), 然后 PC值压入堆栈, 用新的地址值代替。执行返回指令时, 再将 PC值弹出。 子程序调用中, 主程序应先把有关的参数存入约定的位置, 子程序在执行时, 可以从约定的位置取得参数, 当子程序执行完, 将得到的结果再存入约定的位置, 返回主程序后, 主程序可以从这些约定的位置上取得需要的结果, 这就是参数的传递。 例12 把内部RAM某一单元中一个字节的十六进制数转换成两位ASCII码, 结果存放在内部RAM的连续两个单元中。 假设一个字节的十六进制数在内部 RAM 40H单元, 而结果存入 50H, 51H单元, 可以用堆栈进行参数传递, 程序如下: MAIN: MOV R1
您可能关注的文档
最近下载
- 计算机组成原理与系统结构(第二版)包健版.pdf VIP
- 界碑施工方案.docx VIP
- 新世纪大学英语_视听说教程4(第二版)秦秀白听力原文.pdf
- 《病区药品管理规范》课件.ppt VIP
- 系统使用授权合同范例.docx VIP
- GB∕T 786.2-2018 流体传动系统及元件 图形符号和回路图 第2部分:回路图(高清版).pdf
- 《The colourful seasons》(教学设计)-2024-2025学年冀教版(2024)初中英语七年级上册.docx VIP
- (高清版)-B-T 786.3-2021 流体传动系统及元件 图形符号和回路图 第3部分:回路图中的符号模块和连接符号.pdf VIP
- 五谷为养《黄帝内经》中的养生之道.pdf VIP
- 2023云南普洱景东县人民医院公开招聘编外卫生专业技术人员14人笔试历年参考题库典型考题及考点剖析附带答案详解.docx
文档评论(0)