arm linux伪指令,ARM的伪指令总结

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             ;字对齐0b1331709591d260c1c78e86d0c51c18.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值