ARM汇编程序基本知识
作
ASSERT
INFO
OPT
其他常用伪操作
AREA ALIGN CODE16/CODE32 ENTRY END EQU EXPORT(GLOBLE) IMPORT EXTERN GET(INCLUDE) INCBIN RN ROUT
AREA
格式:AREA 段名 属性1,属性2,……
常用属性有:
CODE :用于定义代码段,默认为READONLY
DATA: 定义数据段,默认为READWRITE
READONLY: 指定本段为只读
READWRITE: 指定本段为读写
ALIGN: 使用方式为ALIGN表达式。在默认时,ELF(可执行链接文件)的代码段和数据段是按字对齐的。表达式的取值范围为0~31,相应的对齐方式为2次幂。
COMMON: 定义一个通用的段,不包含任何用户的代码和数据。各源文件中同名的COMMON段共享同一段存储单元。
ALIGN
格式:ALIGN [表达式[,偏移量]]
ALIGN伪操作可通过添加填充字节的方式,使当前位置满足一定的对齐方式。
例:
DATA1
例:
注意上面,在AREA中使用和单独使用ALIGN的区别,格式和计算方式不一样。
ENTRY
用于指定汇编程序的入口点。一个程序可以由一个或者多个源文件组成,一个源文件由一个或者多个程序段组成。一个程序至少有一个入口点,也可有多个入口点,但是在一个源文件中,最多只能有一个ENTRY。当有多个ENTRY时,程序的真正入口点由链接器指定。编译程序在编译连接时根据程序入口点进行连接。在只有一个入口点时,编译程序会把这个入口点的地址定义为系统复位后的程序起始点。
END
在源文件结束处写上,表示源程序的结尾。
EXPORT
格式:EXPORT 标号 [,WEAK]
声明一个全局标号,该标号在其他文件中可引用。WEAK表示碰上其他同名标号时,其他标号优先。
IMPORT
格式:IMPORT 标号 [,WEAK]
表示该引用的标号在其他源文件中,但要在当前文件中引用。WEAK表示找不到该标号时,也不报错,一般讲该标号值置为0,如果是B或者BL使用到,则该指令置为NOP。
与EXTERN的不同的是,无论当前文件是否引用该标号,该标号都被加入当前源文件的符号表中。
EXTERN
和IMPORT一样,不同之处在于,如果当前文件没有引用该标号,该标号不会加入当前源文件的符号表中。
GET(或INCLUDE)
将一个源文件包含到当前的源文件中,并在当前位置进行编译。
INCBIN
将一个目标文件或者数据文件包含到当前,文件内容被原封不动的放在当前位置,编译器不对文件内容进行编译。
RN
给一个寄存器定义一个别名。
Temp RN, R0 ; 将R0定义一个别名 Temp
ARM汇编程序基本知 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)