1)ENTRY 设置程序默认入口点,一个程序可有多个ENTRY,但一个源文件最多只有一个ENTRY。
2)EQU EQU伪操用于将数字常量、基于寄存器的值和程序中的标号定义为一个字符名称。语法格式:
symbol EQU expression
其中,expression可以是一个寄存器的名字,也可是由程序标号、常量或者32位的地址常量组成的表达式。symbol是EQU伪操作所定义的字符名称。示例:COUNT EQU 0X1FFF
3)EXTERN/IMPORT IMPORT(EXTERN功能完全相同)用于声明在其他模块中定义但需要在本文件中使用的符号。EXTERN声明的变量必须是在其他模块中用EXPORT或GLOBAL声明过的。
4)IMPORT class (symbol, symbol ...) 其中,class为变量的类型,可以为ARM、CODE16、CODE32、DATA、CONST、THUMB;symbol为所声明的变量名。
5)EXPORT/GLOBAL EXPORT(GLOBAL功能完全相同)用于声明在本文件中定义但能在其他模块中使用的变量,相当于定义了一个全局变量。语法格式:
EXPORT symbol, symbol...
其中,symbol为所声明的变量名。
6)AREA AREA用于定义一个代码段或数据段,ARM汇编程序设计采用分段式设计,一个ARM源程序至少有一个代码段,大的程序会有若干个代码段和数据段。语法格式:
AREA segment-name, class-name, attributes ,...
其中,segment-name为所定义段的名称;class-name为所定义段的类型名称,可以为系统类型(CODE, CONST, DATA, ERAM)或用户定义类型;attributes为段的属性。
7)END END用于标记汇编文件的结束行,即标号后的代码不作处理。
8)Code[16|32]
伪操作用于选择当前汇编指令的指令集。参数16选择Thumb指令集,参数32 选择ARM指令集。
语法格式:
code[16|32]
9)align
align伪指令通过添加补丁字节使当前位置满足一定的对齐方式。
语法格式:
align {expr{,offset}}
其中:expr为数字表达式,用于指定对齐的方式。取值为2的n次幂,如1、2、4、8等,不能为0。若没有expr,则默认为字对齐方式。
Offset为数字表达式。当前位置对齐到下面形式的地址处:offset+n*expr
示例:
align 4,3 ;字对齐