- 1、本文档共75页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2008年4月13日 南京大学计算机系 《嵌入式系统原理与开发》 第10讲 南京大学计算机系 俞建新主讲 第5章 ARM指令集和汇编语言程序 本章主要介绍以下内容: ARM指令集的基本特点 与Thumb指令集的区别 与x86处理器的区别 ARM指令格式 ARM寻址方式 ARM指令集分类详解 ARM汇编语言的指示符 ARM汇编语言语句格式 ARM汇编语言程序格式 ARM汇编语句格式和程序格式进阶 ARM汇编语言程序举例 本讲主要参考文献 ARM公司英文资料: ADS_AssemblerGuide_B.pdf DDI0100E_ARM_ARM.pdf 中文图书 《ARM体系结构与编程》,清华大学出版社 《嵌入式系统基础教程》,机械工业出版社 5.4 ARM汇编语言程序的指示符 ARM汇编语言源程序中语句由指令、指示符和宏指令组成。 在ARM中将directive称做指示符 ARM的指示符指令相当于x86的伪指令 在ARM中pseudo-instruction被称为伪指令 ARM指令集中只有4条伪指令 而宏指令则是通过指示符定义的。 使用MACRO和 MEND指示符 5.4.1 符号定义指示符 符号定义(Symbol definition)指示符用于定义ARM汇编程序中的变量,对变量进行赋值以及定义寄存器名称。包括以下指示符: GBLA,GBLL及GBLS 声明全局变量; LCLA,LCLL及LCLS 声明局部变量; SETA,SETL及SETS 给变量赋值; RLIST 为通用寄存器列表定义名称; CN 为协处理器的寄存器定义名称; CP 为协处理器定义名称; DN及SN 为VFP的寄存器定义名称; FN 为FPA的浮点寄存器定义名称。 5.4.2 数据定义指示符 数据定义(Data definition)指示符包括以下的指示符: LTORG 声明一个数据缓冲池(literal pool)的开始; MAP 定义一个结构化的内存表(storage map)的首地址; FIELD 定义结构化的内存表中的一个数据域(field); SPACE 分配一块内存单元,并用0初始化; DCB 分配一段字节的内存单元,并用指定的数据初始化; DCD及DCDU 分配一段字的内存单元,并用指定的数据初始化; DCDO 分配一段字的内存单元,并将单元的内容初始化成该单元相对于静态基值寄存器的偏移量。 数据定义指示符(续) DCFD及DCFDU 分配一段双字的内存单元,并用双精度的浮点数据初始化。 DCFS及DCFSU 分配一段字的内存单元,并用单精度的浮点数据初始化。 DCI 分配一段字节的内存单元,用指定的数据初始化,指定内存单元中存放的是代码,而不是数据。 DCQ及DCQU 分配一段双字的内存单元,并用64位的整数数据初始化。 DCW及DCWU 分配一段半字的内存单元,并用指定的数据初始化。 DATA 在代码段中使用数据。现已不再使用,仅用于保持向前兼容。 LTORG指示符 LTORG指示符要求汇编器立即安排一个数据缓冲池(文字池)。 语法: LTORG 使用说明:通常ARM汇编器把数据缓冲池放在代码段的最后面,即下一个代码段开始之前,或者END指示符之前。 当程序中使用LDMFD之类的指令时,数据缓冲池可能越界。这时可以使用LTORG指示符定义数据缓冲池。以防止越界发生。通常,大的代码段可以使用多个数据缓冲池。 LTORG指示符通常放在无条件跳转指令之后。或者子程序返回之后,这样处理器就不会错误地把数据缓冲池中的数据当作指令来执行。 LTORG指示符使用举例 AREA EXP_1, CODE, READONLY START BL FUNC1 FUNC1 ;CODE LDR R1,;产生形如LDR R1, [PC, #offset to Literal Pool]的指令 ;CODE MOV PC, LR ; 子程序结束 LTORG ; 定义数据缓冲池DATA SPACE 46 ; 从当前位置开始分配46字节 END ; 默认的数据缓冲池为空 使用MAP和FIELD描述数据结构 ADS编译器使用MAP和FIELD两个指示符描述数据结构。 MAP定义了数据结构的起始地址。 FIELD用来定义数据结构中的字段 MAP指示符 ^是MAP的同义词 MAP语法 MAP expr {, base-register} 其中:expr为数字表达式或者是程序中的标号。 当指令中没有base-register时,expr即为结构化内存表的首地址。此时内存表的位置计数器{VAR}设置成该地址值。 当expr 为程序中的标号,该标
您可能关注的文档
- 2014年”运营—IOS整合运营管理模式实践探索.ppt
- 2014年《Anroid 20游戏开发实战宝典》- [Android游戏开发培.ppt
- 2014年《ARM嵌入式C编程标准教程》.ppt
- 2014年《ARM嵌入式C编程标准教程》60332142.ppt
- 2014年《ARM嵌入式基础教程》配套讲义03ARM7体系结构(1-8).ppt
- 2014年《ARM嵌入式接口技术应用》第六章 人机交互 — 输入接.ppt
- 2014年《ARM嵌入式接口技术应用》第七章 模数与数模转换费.ppt
- 2014年《ARM嵌入式接口技术应用》第三章 存储器件.ppt
- 2014年《ARM嵌入式接口技术应用》第五章 人机交互 — 输出接口.ppt
- 2014年《ARM嵌入式接口技术应用》第一章 ARM实验板硬件结构与.ppt
- 执业药师之《药事管理与法规》检测卷讲解含答案详解(最新).docx
- 执业药师之《药事管理与法规》全真模拟模拟题及答案详解(全国通用).docx
- 2025年执业药师之《西药学综合知识与技能》模拟试题附参考答案详解(突破训练).docx
- 2025年执业药师之《西药学综合知识与技能》考前冲刺模拟题库含答案详解(培优a卷).docx
- 2025年执业药师之《西药学综合知识与技能》真题精选附答案详解(名师推荐).docx
- 执业药师之《药事管理与法规》强化训练模考卷带答案详解.docx
- 2025年执业药师之《西药学综合知识与技能》考前冲刺测试卷包附参考答案详解(b卷).docx
- 2025年执业药师之《西药学综合知识与技能》模考模拟试题及参考答案详解(夺分金卷).docx
- 2025年执业药师之《西药学综合知识与技能》真题含答案详解【b卷】.docx
- 2025年执业药师之《西药学综合知识与技能》考前冲刺模拟题库带答案详解(b卷).docx
最近下载
- 贵州省事业单位人员聘用合同书.doc VIP
- 4.建筑施工企业项目负责人安全生产考核合格证书样本.pdf VIP
- 贵州省事业单位人员聘用合同书范本.docx VIP
- 皮带接头硫化上.pptx VIP
- 陕西省事业单位合同5篇.docx VIP
- 贵州省事业单位人员聘用合同书(合同范本).pdf VIP
- SYT 4201.2-2019 石油天然气建设工程施工质量验收规范 设备安装工程 第2部分:塔类.docx VIP
- SYT 4201.4-2019 石油天然气建设工程施工质量验收规范设备安装工程 第4部分:炉类.docx VIP
- 解读2021新安全生产法课件PPT(内容完整).pptx VIP
- SY_T 4201.3-2019 石油天然气建设工程施工质量验收规范 设备安装工程 第3部分:容器类.docx VIP
文档评论(0)