[工学]zz-ARM汇编伪指令课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《[工学]zz-ARM汇编伪指令课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 工学 zz ARM 汇编 指令 课件
- 资源描述:
-
1、zhaiQYARM伪指令ARM汇编语言的伪操作ARM汇编语言的宏指令ARM汇编语言的伪指令ARM汇编语言程序设计主要内容两种常见的ARM编译开发环境ADS/SDT、RealView MDK等等ARM公公司推出的开发工具司推出的开发工具lADS由由ARM公司推出公司推出,使用了使用了CodeWarrior公司的编译器。针对公司的编译器。针对ARM资源配置为用户提供资源配置为用户提供了在了在 CodeWarrior IDE 集成环境下配置各集成环境下配置各种种ARM 开发工具的能力。开发工具的能力。l 以以ARM为目标平台的工程创建向导,可以使为目标平台的工程创建向导,可以使用户以此为基础,快速创
2、建用户以此为基础,快速创建ARM和和Thumb工工程。程。两种常见的ARM编译开发环境ADS/SDT、RealView MDK等等ARM公公司推出的开发工具司推出的开发工具ARM 将将Keil 公司收购之后公司收购之后,正式推出了针对正式推出了针对ARM 微控制器的开发工具微控制器的开发工具Real View MDK 或者或者MDK,它将,它将ARM 开发工具开发工具RealView Development Suite(简称简称RVDS)的编译的编译器器RVCT 与与Keil的工程管理、调试仿真工具集的工程管理、调试仿真工具集成在一起,是一款非常强大的成在一起,是一款非常强大的ARM 微控制器
3、微控制器开发工具。开发工具。两种常见的ARM编译开发环境GNU ARM开发工具开发工具lGNU是是“GNUs Not Unix”的递归缩写。的递归缩写。在在1983年年9月月27日由日由Richard Stallman公公开发起开发起GNU计划,它的目标是创建一套完全自计划,它的目标是创建一套完全自由的操作系统。由的操作系统。lGNU格式格式ARM汇编语言程序主要是面对在汇编语言程序主要是面对在ARM平台上移植嵌入式平台上移植嵌入式Linux操作系统,操作系统,GNU组织开发的基于组织开发的基于ARM平台的编译工具有平台的编译工具有主要由主要由GNU的汇编器的汇编器as,交叉汇编器交叉汇编器g
4、cc和连和连接器接器ld组成。组成。ADS编译环境下的伪操作和宏指令 ADS编译环境下的伪操作可分为以下几类:l符号定义(Symbol Definition)伪操作 l数据定义(Data Definition)伪操作 l汇编控制(Assembly Control)伪操作 l信息报告(Reporting)伪操作 l其他(Miscellaneous)伪操作 符号定义伪操作 伪操作伪操作语法格式语法格式作作 用用GBLAGBLA Variable声明一个全局的算术变量,并将其初始化成声明一个全局的算术变量,并将其初始化成0。GBLLGBLL Variable声明一个全局的逻辑变量,并将其初始化成声明
5、一个全局的逻辑变量,并将其初始化成FALSE。GBLSGBLS Variable声明一个全局的字符串变量,并将其初始化成空串声明一个全局的字符串变量,并将其初始化成空串“”“”。LCLALCLA Variable声明一个局部的算术变量,并将其初始化成声明一个局部的算术变量,并将其初始化成0。LCLLLCLL Variable声明一个局部的逻辑变量,并将其初始化成声明一个局部的逻辑变量,并将其初始化成FALSE。LCLSLCLS Variable声明一个局部的串变量,并将其初始化成空串声明一个局部的串变量,并将其初始化成空串“”“”。SETASETA Variable expr给一个全局或局部算
6、术变量赋值。给一个全局或局部算术变量赋值。SETLSETL Variable expr给一个全局或局部逻辑变量赋值。给一个全局或局部逻辑变量赋值。SETSSETS Variable expr给一个全局或局部字符串变量赋值。给一个全局或局部字符串变量赋值。RLISTn a m e L I S T l i s t o f registers为一个通用寄存器列表定义名称。为一个通用寄存器列表定义名称。CNname CN expr为一个协处理器的寄存器定义名称。为一个协处理器的寄存器定义名称。CPname CP expr为一个协处理器定义名称。为一个协处理器定义名称。DN/SNname DN/SN e
7、xprDN/SN为一个双精度为一个双精度/单精度的单精度的VFP寄存器定义名称。寄存器定义名称。FNname FN expr为一个为一个FPA浮点寄存器定义名称。浮点寄存器定义名称。数据定义伪操作 伪操作伪操作语法格式语法格式作作 用用LTORGLTORG声明一个数据缓冲池(也称为文字池)的开始。声明一个数据缓冲池(也称为文字池)的开始。MAPMAP expr,base-register定义一个结构化的内存表(定义一个结构化的内存表(Storage Map)的首地址。)的首地址。FIELDlabel FIELD expr定义一个结构化内存表中的数据域。定义一个结构化内存表中的数据域。SPACE
8、label SPACE expr分配一块连续内存单元,并用分配一块连续内存单元,并用0初始化。初始化。DCBlabel DCB expr,expr分配一段字节内存单元,并用分配一段字节内存单元,并用expr初始化。初始化。D C D/DCDUlabel DCD expr,expr分配一段字内存单元。分配一段字内存单元。DCDOlabel DCDO expr,expr分配一段字对齐的字内存单元。分配一段字对齐的字内存单元。D C F D/DCFDUlabel DCFD Ufpliteral,fpliteral为双精度的浮点数分配字对齐的内存单元。为双精度的浮点数分配字对齐的内存单元。D C F
9、S/DCFSUlabel DCFS U fpliteral,fpliteral为单精度的浮点数分配字对齐的内存单元。为单精度的浮点数分配字对齐的内存单元。DCIlabel DCI expr,expr在在ARM代码中分配一段字对齐的内存单元代码中分配一段字对齐的内存单元;在在Thumb代代码中,分配一段半字对齐的半字内存单元。码中,分配一段半字对齐的半字内存单元。D C Q/DCQUlabel DCQUl i t e r a l ,literal分配一段以双字(分配一段以双字(8个字节)为单位的内存个字节)为单位的内存D C W/DCWUlabel DCWUexpr,exprDCW用于分配一段半
10、字对齐的半字内存单元。用于分配一段半字对齐的半字内存单元。汇编控制伪操作 伪操作伪操作语法格式语法格式作作 用用IF,ELSE及及ENDIFIF logical expressionELSEENDIF能够根据条件把一段源代码包能够根据条件把一段源代码包括在汇编语言程序内或者将其括在汇编语言程序内或者将其排除在程序之外。排除在程序之外。WHILE及及WENDWHILE logical expressionWEND能够根据条件重复汇编相同的能够根据条件重复汇编相同的一段源代码。一段源代码。MACRO、M E N D 及及MEXITMACRO$label macroname$parameter,$p
11、arameter;宏代码;宏代码MENDMACRO标识宏定义的开始,标识宏定义的开始,MEND标识宏定义的结束。标识宏定义的结束。MERIT用于从用于从宏中跳转出去。用宏中跳转出去。用MACRO和和MEND定义的一段代码,称为宏定义体。定义的一段代码,称为宏定义体。通过宏名称来调用宏。通过宏名称来调用宏。信息报告伪操作 伪操作伪操作语法格式语法格式作作 用用ASSERTA S S E R T l o g i c a l expression对汇编程序的第二遍扫描中,如果其中对汇编程序的第二遍扫描中,如果其中ASSERT中条件不成立,中条件不成立,ASSERT伪操作将报告该错误信伪操作将报告该错
12、误信息。息。INFOI N F O n u m e r i c-expression,string-expression在汇编处理过程的第一遍扫描或者第二遍扫描时在汇编处理过程的第一遍扫描或者第二遍扫描时INFO伪操作报告诊断信息。伪操作报告诊断信息。OPTOPT n通过通过OPT伪操作可以在源程序中设置列表选项。伪操作可以在源程序中设置列表选项。TTL TTL title在列表文件的每一页的开头插入一个标题。在列表文件的每一页的开头插入一个标题。SUBTSUBT subtitle在列表文件的每一页的开头插入一个子标题。在列表文件的每一页的开头插入一个子标题。伪操作伪操作语法格式语法格式作作
13、用用CODE16CODE16说明后面的指令序列为说明后面的指令序列为16位的位的Thumb指令指令CODE32CODE32说明说明后面的指令序列为后面的指令序列为32位的位的ARM指令。指令。EQUname EQU expr,type定义一个字符名称定义一个字符名称,类似于类似于C语言中的语言中的define宏定义。宏定义。AREAAREA sectionname,attr,attr定义一个代码段或者数据段。定义一个代码段或者数据段。ENTRYENTRY指定程序的入口点。指定程序的入口点。ENDEND说明到了源程序结尾。说明到了源程序结尾。ALIGNALIGN expr,offset通过添加补
14、丁字节使当前位置满足一定的对齐方式。通过添加补丁字节使当前位置满足一定的对齐方式。EXPORT/GLOBALEXPORT symbol WEAK声明一个符号可以被其他文件引用声明一个符号可以被其他文件引用.IMPORTIMPORT symbol WEAK说明说明当前的符号不是在本源文件中定义的,而是在其他源文件中定当前的符号不是在本源文件中定义的,而是在其他源文件中定义的,在本源文件中可能引用该符号。义的,在本源文件中可能引用该符号。EXTERNEXTERN symbol WEAK说明说明当前的符号不是在本源文件中定义的,而是在其他源文件中定当前的符号不是在本源文件中定义的,而是在其他源文件中
15、定义的,在本源文件中可能引用该符号。义的,在本源文件中可能引用该符号。GET/INCLUDEGET filename 将一个源文件包含到当前源文件中,并将被包含的文件在其当前位将一个源文件包含到当前源文件中,并将被包含的文件在其当前位置进行汇编处理。置进行汇编处理。INCBININCBIN filename将一个文件包含到当前源文件中,被包含的文件不进行汇编处理。将一个文件包含到当前源文件中,被包含的文件不进行汇编处理。KEEPKEEPsymbol说明说明将局部符号包含在目标文件的符号表中。将局部符号包含在目标文件的符号表中。NOFPNOFP禁止源程序中包含浮点运算指令。禁止源程序中包含浮点运
16、算指令。REQUIREREQUIRE lable指定段之间的相互依赖关系。指定段之间的相互依赖关系。RNname RN expr为一个特定的寄存器定义名称。为一个特定的寄存器定义名称。ROUTname ROUT定义局部变量的有效范围。定义局部变量的有效范围。其他伪操作GNUGNU编译环境下的伪操作和宏指令 GNU编译环境下的伪操作可分为以下几类:l常量编译控制伪操作l汇编程序代码控制伪操作l宏及条件编译控制伪操作l其他伪操作常量编译控制伪操作伪操作伪操作语法格式语法格式作作 用用.byte.byte expr,expr 分配一段字节内存单元,并用分配一段字节内存单元,并用expr初始化。初始化
17、。.hword/.short.h w o r d e x p r ,expr 分配一段半字内存单元,并用分配一段半字内存单元,并用expr初始化。初始化。.ascii.ascii expr,expr 定义字符串定义字符串expr(非零结束符)。(非零结束符)。.asciz/.string.asciz expr,expr 定义字符串定义字符串expr(以(以/0为结束符)。为结束符)。.float/.single.float expr,expr 定义一个定义一个32bit IEEE 浮点数浮点数expr。.double.double expr,expr 定义定义64bit IEEE浮点数浮点数e
展开阅读全文