ARM指令集详解2
READWRITE;指定本段为可读可写,数据段的默认属性READWRITE。
ALIGN属性,使用方式为:
ALIGN 表达式
在默认时,ELF的代码段和数据段是按字对齐的。
一个汇编语言程序至少要包含一个段,当程序太长时,也可以将程序分为多个代码段和数据段。
AREA Init,CODE,READONLY
该伪指令定义了一个代码段,段名为Init,属性为只读。
ALIGN {表达式{偏移量}}
ALIGN伪指令可通过添加填充字节的方式,使当前位置满足一定的对齐方式。其中,表达式的值用于指定对齐方式,可能的取值为2的幂,如1,2,4,8,16等。若未指定表达式,则将当前位置对齐到下一个字的位置。偏移量也为一个数字表达式,若使用该字段,则当前位置的对齐方式为:2的表达式次幂+偏移量。
AREA Init,CODE,READONLY,ALIGN=3
指定后面的指令为8字节对齐。
CODE16(或CODE32)
CODE16伪指令通知编译器,其后的指令序列为16位的Thumb指令。CODE32伪指令通知编译器,其后的指令序列为32位的ARM指令。因此,在使用ARM指令和Thumb指令混合编程的代码里,可用这两条伪指令进行切换,但注意他们只通知编译器其后指令的类型,并不能对处理器进行状态的切换。
ENTRY
ENTRY伪指令用于指定汇编程序的入口点,在一个完整的汇编程序中至少要有一个ENTRY(也可有多个,当有多个ENTRY时,程序的真正入口点由链接器指定),但在一个源文件里最多只能有一个ENTRY。
名称 EQU 表达式{类型}
EQU伪指令用于为程序中的常量、标号等定义一个等效的字符名称,类似于C语言中的#define。其中EQU可用“*”代替。
Test EQU 50
Addr EQU 0x55,CODE32
EXPORT 标号
EXPORT伪指令用于在程序中声明一个全局的标号,该标号可在其他的文件中引用。EXPORT可用GLOBAL代替。标号在程序中区分大小写。
AREA Init,CODE,READONLY
EXPORT Stest
声明一个可全局引用的标号Stest
IMPORT 标号
IMPORT伪指令用于通知编译器要使用的标号在其他的源文件中定义,但要在当前源文件中引用。标号在程序中区分大小写。
AREA Init,CODE,READONLY
IMPORT Main
通知编译器当前文件要引用标号Main,但Main在其他源文件中定义
END
END伪指令用于通知编译器已经到了源程序的结尾。
ARM指令集汇 相关文章:
- 常用ARM指令集及汇编(11-20)
- arm指令集 从汇编开始(11-20)
- 常用 ARM指令集及汇编(11-10)
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)