ARM汇编语言程序指示符与语句格式

ARM汇编语言程序指示符与语句格式

ID:36884500

大小:423.50 KB

页数:57页

时间:2019-05-10

ARM汇编语言程序指示符与语句格式_第1页
ARM汇编语言程序指示符与语句格式_第2页
ARM汇编语言程序指示符与语句格式_第3页
ARM汇编语言程序指示符与语句格式_第4页
ARM汇编语言程序指示符与语句格式_第5页
资源描述:

《ARM汇编语言程序指示符与语句格式》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第5章ARM指令集和汇编语言程序本章主要介绍以下内容:ARM指令集的基本特点与Thumb指令集的区别与x86处理器的区别ARM指令格式ARM寻址方式ARM指令集分类详解ARM汇编语言的指示符ARM汇编语言语句格式ARM汇编语言程序格式ARM汇编语句格式和程序格式进阶ARM汇编语言程序举例7/18/20211本讲主要参考文献ARM公司英文资料:ADS_AssemblerGuide_B.pdfDDI0100E_ARM_ARM.pdf中文图书《ARM体系结构与编程》,清华大学出版社《嵌入式系统基础教程》,机械工业出版社7/18/20

2、2125.4ARM汇编语言程序的指示符ARM汇编语言源程序中语句由指令、指示符和宏指令组成。在ARM中将directive称做指示符ARM的指示符指令相当于x86的伪指令在ARM中pseudo-instruction被称为伪指令ARM指令集中只有4条伪指令而宏指令则是通过指示符定义的。使用MACRO和MEND指示符7/18/202135.4.1符号定义指示符符号定义(Symboldefinition)指示符用于定义ARM汇编程序中的变量,对变量进行赋值以及定义寄存器名称。包括以下指示符:GBLA,GBLL及GBLS声明全局变量

3、;LCLA,LCLL及LCLS声明局部变量;SETA,SETL及SETS给变量赋值;RLIST为通用寄存器列表定义名称;CN为协处理器的寄存器定义名称;CP为协处理器定义名称;DN及SN为VFP的寄存器定义名称;FN为FPA的浮点寄存器定义名称。7/18/202145.4.2数据定义指示符数据定义(Datadefinition)指示符包括以下的指示符:LTORG声明一个数据缓冲池(literalpool)的开始;MAP定义一个结构化的内存表(storagemap)的首地址;FIELD定义结构化的内存表中的一个数据域(field

4、);SPACE分配一块内存单元,并用0初始化;DCB分配一段字节的内存单元,并用指定的数据初始化;DCD及DCDU分配一段字的内存单元,并用指定的数据初始化;DCDO分配一段字的内存单元,并将单元的内容初始化成该单元相对于静态基值寄存器的偏移量。7/18/20215数据定义指示符(续)DCFD及DCFDU分配一段双字的内存单元,并用双精度的浮点数据初始化。DCFS及DCFSU分配一段字的内存单元,并用单精度的浮点数据初始化。DCI分配一段字节的内存单元,用指定的数据初始化,指定内存单元中存放的是代码,而不是数据。DCQ及DCQ

5、U分配一段双字的内存单元,并用64位的整数数据初始化。DCW及DCWU分配一段半字的内存单元,并用指定的数据初始化。DATA在代码段中使用数据。现已不再使用,仅用于保持向前兼容。7/18/202165.4.3汇编控制指示符汇编控制(Assemblycontrol)指示符包括下面的指示符:IF,ELSE及ENDIF汇编或者不汇编一段源代码WHILE及WEND条件重复汇编相同的一段源代码MACRO及MEND标识宏定义开始与结束MEXIT用于从宏跳转出去7/18/202175.4.4信息报告指示符信息报告(Reporting)指示符

6、包括下列指示符:ASSERT在汇编编译器对汇编程序的第二趟扫描中,如果其中的ASSERTION中条件不成立,ASSERT伪操作将报告该错误信息。INFO支持第一二趟汇编扫描时报告诊断信息。OPTTTL及SUBT7/18/202185.4.5其他指示符这些杂类的指示符包括:ALIGNAREACODE16及CODE32ENDENTRYEQUEXPORT或GLOBAL7/18/20219其他的指示符(续)EXTERNGET或INCLUDEIMPORTINCBINKEEPNOFPREQUIREREQUIRE8及PRESERVE8RNR

7、OUT7/18/2021105.4.5.1AREAAREA指示符用于定义一个代码段或者数据段。语法格式AREAsectionname{,attr}{,attr}....其中:sectionname为所定义的代码段或者数据段的名称。如果该名称是以数字开头的,则该名称必须用“|”括起来,如|1_datasec|。还有一些代码段具有约定的名称,如|.text|表示C语言编译器产生的代码段或者是与C语言库相关的代码段。Attr是该代码段(或者程序段)的属性。在AREA指示符中,各属性间用逗号隔开。7/18/202111AREA的属性下

8、面列举主要的属性:ALIGN=expression。默认的情况下,ELF的代码段和数据段是4字节对齐的。Expression可以取0~31的数值,相应的对齐方式为(2expression)字节对齐。如expression=3时为8字节对齐。ASSOC=section。指定与本

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。