arm汇编伪指令.ppt
《arm汇编伪指令.ppt》由会员分享,可在线阅读,更多相关《arm汇编伪指令.ppt(22页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第五章基于ARM的嵌入式程序设计 5.1 ARM汇编语言的伪操作、宏指令与伪指令 5.2 ARM汇编语言程序设计 5.3 嵌入式C语言程序设计基础 5.4 嵌入式C语言程序设计实例 5.5 嵌入式C语言程序设计技巧 5.6 C与汇编语言混合编程5.1 ARM汇编语言的伪操作、汇编语言的伪操作、宏指令与伪指令宏指令与伪指令 5.1.1 两种常见的ARM编译开发环境 5.1.2 ADS编译环境下的伪操作和宏指令 5.1.3 GNU编译环境下的伪操作和宏指令 5.1.4 ARM汇编语言的伪指令 5.1.1两种常见的ARM编译开发环境 ADS/SDT IDE开发环境:它由ARM公司开发,使用了Code
2、Warrior公司的编译器; 集成了GNU开发工具的IDE开发环境:它由GNU的汇编器as、交叉编译器gcc、和链接器ld等组成。 5.1.2ADS编译环境下的伪操作和宏指令 ADS编译环境下的伪操作可分为以下几类:符号定义(Symbol Definition)伪操作 数据定义(Data Definition)伪操作 汇编控制(Assembly Control)伪操作 信息报告(Reporting)伪操作 其他(Miscellaneous)伪操作 符号定义伪操作 伪操作伪操作语法格式语法格式作作 用用GBLAGBLA Variable声明一个全局的算术变量,并将其初始化成声明一个全局的算术变量
3、,并将其初始化成0。GBLLGBLL Variable声明一个全局的逻辑变量,并将其初始化成声明一个全局的逻辑变量,并将其初始化成FALSE。GBLSGBLS Variable声明一个全局的字符串变量,并将其初始化成空串声明一个全局的字符串变量,并将其初始化成空串“”“”。LCLALCLA Variable声明一个局部的算术变量,并将其初始化成声明一个局部的算术变量,并将其初始化成0。LCLLLCLL Variable声明一个局部的逻辑变量,并将其初始化成声明一个局部的逻辑变量,并将其初始化成FALSE。LCLSLCLS Variable声明一个局部的串变量,并将其初始化成空串声明一个局部的串
4、变量,并将其初始化成空串“”“”。SETASETA Variable expr给一个全局或局部算术变量赋值。给一个全局或局部算术变量赋值。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
5、CP expr为一个协处理器定义名称。为一个协处理器定义名称。DN/SNname DN/SN exprDN/SN为一个双精度为一个双精度/单精度的单精度的VFP寄存器定义名称。寄存器定义名称。FNname FN expr为一个为一个FPA浮点寄存器定义名称。浮点寄存器定义名称。数据定义伪操作 伪操作伪操作语法格式语法格式作作 用用LTORGLTORG声明一个数据缓冲池(也称为文字池)的开始。声明一个数据缓冲池(也称为文字池)的开始。MAPMAP expr,base-register定义一个结构化的内存表(定义一个结构化的内存表(Storage Map)的首地址。)的首地址。FIELDlabel
6、 FIELD expr定义一个结构化内存表中的数据域。定义一个结构化内存表中的数据域。SPACElabel 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,
7、fpliteral为双精度的浮点数分配字对齐的内存单元。为双精度的浮点数分配字对齐的内存单元。 D C F 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、双字(8个字节)为单位的内存个字节)为单位的内存D C W / DCWUlabel DCWUexpr,exprDCW用于分配一段半字对齐的半字内存单元。用于分配一段半字对齐的半字内存单元。汇编控制伪操作 伪操作伪操作语法格式语法格式作作 用用IF,ELSE及及ENDIFIF logical expressionELSEENDIF能够根据条件把一段源代码包能够根据条件把一段源代码包括在汇编语言程序内或者将其括在汇编语言程序内或者将其排除在程序之外。排除在程序之外。WHILE及及WENDWHILE logical expressionWEND能够根据条件重复汇编相同的能够根据条件重复汇编相同的一段
9、源代码。一段源代码。MACRO 、M E N D 及及MEXITMACRO$label macroname $parameter,$parameter;宏代码;宏代码MENDMACRO标识宏定义的开始,标识宏定义的开始,MEND标识宏定义的结束。标识宏定义的结束。MERIT用于从用于从宏中跳转出去。用宏中跳转出去。用MACRO和和MEND定义的一段代码,称为宏定义体。定义的一段代码,称为宏定义体。通过宏名称来调用宏。通过宏名称来调用宏。信息报告伪操作 伪操作伪操作语法格式语法格式作作 用用ASSERTA S S E R T l o g i c a l expression对汇编程序的第二遍扫描
10、中,如果其中对汇编程序的第二遍扫描中,如果其中ASSERT中条件不成立,中条件不成立,ASSERT伪操作将报告该错误信伪操作将报告该错误信息。息。INFOI N F O n u m e r i c -expression,string-expression在汇编处理过程的第一遍扫描或者第二遍扫描时在汇编处理过程的第一遍扫描或者第二遍扫描时INFO伪操作报告诊断信息。伪操作报告诊断信息。OPTOPT n通过通过OPT伪操作可以在源程序中设置列表选项。伪操作可以在源程序中设置列表选项。TTL TTL title在列表文件的每一页的开头插入一个标题。在列表文件的每一页的开头插入一个标题。SUBTSU
11、BT subtitle在列表文件的每一页的开头插入一个子标题。在列表文件的每一页的开头插入一个子标题。伪操作伪操作语法格式语法格式作作 用用CODE16CODE16告诉汇编编译器后面的指令序列为告诉汇编编译器后面的指令序列为16位的位的Thumb指令指令CODE32CODE32告诉汇编编译器后面的指令序列为告诉汇编编译器后面的指令序列为32位的位的ARM指令。指令。EQUname EQU expr,type为数字常量、基于寄存器的值和程序中的标号(基于为数字常量、基于寄存器的值和程序中的标号(基于PC的值)定义一个字符名称的值)定义一个字符名称,类似于类似于C语言中的语言中的define宏定义
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- arm 汇编 指令
限制150内