- 1、本文档共88页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第6章ARM程设计 4学时
共88页 在汇编语言程序设计中,常用的是DO-UNTIL结构循环程序。 MOV R1,#10 LOOP ……. SUBS R1,R1,#1 BNE LOOP 例4:编写一个程序,把首地址为DATA_SRC的 80 个字的数据复制到首地址为DATA_DST的目标数据块中。 LDR R1,=DATA_SRC LDR R0,=DATA_DST MOV R10,#10 LOOP LDMIA R1!,{R2-R9} STMIA R0!,{R2-R9} SUBS R10,R10,#1 BNE LOOP 6.2.4 子程序及其调用 1、子程序的调用与返回 人们把可以多次反复调用的、能完成指定功能的程序段称为“子程序”。把调用子程序的程序称为“主程序”。 为进行识别,子程序的第1条指令之前必须赋予一个标号,以便其他程序可以用这个标号调用子程序。 在 ARM 汇编语言程序中,主程序一般通过 BL 指令来调用子程序。该指令在执行时完成如下操作:将子程序的返回地址存放在连接寄存器LR中,同时将程序计数器PC指向子程序的入口点。 为使子程序执行完毕能返回主程序的调用处,子程序末尾处应有MOV、B、BX、LDMFD等指令,并在指令中将返回地址重新复制到 PC 中。 在调用子程序的同时,也可以使用R0~R3 来进行参数的传递和从子程序返回运算结果。 例5:一个使用MOV指令实现返回的子程序。 relay ….. MOV PC, LR 使用B指令实现返回的子程序。 relay ….. B LR 例6:一个使用BL指令调用子程序的汇编语言源程序的基本结构。 AERA Init, CODE, READONLY ENTRY start LDR R0,=0X3FF5000 LDR R1,=0XFF STR R1,[R0] LDR R0,=0X3FF5008 LDR R1,=0X01 STR R1,[R0] BL PR ……. PR …… MOV PC,LR …… END 2、子程序中堆栈的使用 relay STMFD R13!,{R0~R12,LR};压入堆栈 …… ;子程序代码 LDMFD R13!,{R0~R12,PC} ;弹出堆栈并返回 6.2.5 汇编程序访问全局 C 变量 一般来说,汇编语言程序与 C 语言程序不在同一个文件上,所以实质上这是一个引用不同文件定义的变量问题。解决这个问题的办法就是使用关键字 IMPORT 和 EXPORT。 例、下面是一个汇编代码的函数,它引用了一个在其他文件中定义的全局变量globvar,将其加 2 后写回 globvar 。 AREA globals, CODE, READONLY EXPORT asmsubrouttine IMPORT globvar Asmsubrouttine LDR R1,=globvar LDR R0,[R1] ADD R0,R0,#2 STR R0,[R1] MOV PC,LR END 6.3 ARM程序框架 在应用系统的程序设计中,若所有的编程任务均用汇编语言来完成,其工作量是可想而知的,这样做也不利于系统升级或应用软件移植。 通常汇编语言部分完成系统硬件的初始化;高级语言部分完成用户的应用。 执行时,首先执行初始化部分,然后再跳转到 C/C++ 部分。整个程序结构显得清晰明了,容易理解。程序的基本结构如下: 硬件初始化的汇编语 言程序(特权模式) B main 完成用户任务的 C/C++程序(用户模式) 跳转 6.3.1 初始化程序部分 由于在用于完成初始化任务的汇编语言程序中需要在特权模式下做一些诸如修改 CPSR 等特权操作,所以不能过早地进入用户模式。
您可能关注的文档
- 第6章 数据的序,聚集和分组 重点内容 排序数据 聚集数.ppt
- 第6章 数据抽-类.ppt
- 第6章 数据表创建与管理.ppt
- 第6章 数据流运用.ppt
- 第6章 数控线割机床操作.ppt
- 第6章 数理统学中的基本概念.ppt
- 第6章 数据结-图-jy.ppt
- 第6章 数控铣的编程与加工.ppt
- 第6章 数据的表呈现.ppt
- 第6章 数组、举及注解.ppt
- 2025年铜川职业技术学院单招职业技能测试题库附答案.docx
- 2025年铜川职业技术学院单招职业技能测试题库及一套完整答案.docx
- 2025年铜仁职业技术学院单招职业适应性测试题库(网校专用).docx
- 2025年铜川职业技术学院单招职业技能测试题库及一套完整答案.docx
- 2025年苏州卫生职业技术学院高职单招语文2018-2024历年参考题库频考点含答案解析.docx
- 2025年苏州卫生职业技术学院高职单招职业适应性测试近5年常考版参考题库含答案解析.docx
- 2025年铜仁职业技术学院单招职业适应性测试题库(易错题).docx
- 2025年铜川职业技术学院单招职业技能测试题库有答案.docx
- 2025年铜仁职业技术学院单招职业适应性测试题库(综合卷).docx
- 安全实践教学.pptx
文档评论(0)