4.“.abort”
停止汇编
5.“.align”
.align absexpr1,absexpr2
以某种对齐方式,在未使用的存储区域填充值. 第一个值表示对齐方式,4, 8,16或32. 第二个表达式值表示填充的值
6.“.if .else .endif”
.if
.else
.endif:支持条件预编译
7.“.include”
.include “file”:包含指定的头文件, 可以把一个汇编常量定义放在头文件中
8.“.comm”
.comm symbol, length:
在bss段申请一段命名空间,该段空间的名称叫symbol, 长度为length. Ld连接器在连接会为它留出空间
9.“.equ”
.equ symbol, expression: 把某一个符号(symbol)定义成某一个值(expression).该指令并不分配空间,相当于c语言中的#define。例如
.equ aaa,0x20000000
10.“.macro .endm”
.macro: 定义一段宏代码,.macro表示代码的开始,.endm表示代码的结束,.exitm跳出宏, 示例如下:
.macro SHIFTLEFT a, b.if \b < 0
mov \a, \a, ASR #-\b
.exitm
.endif
mov \a, \a, LSL #\b
.endm
11.“.req”
name .req register name: 为寄存器定义一个别名
12.“.code”
.code [16|32]: 指定指令代码产生的长度, 16表示Thumb指令, 32表示ARM指令
13.“.ltorg”
.ltorg: 表示当前往下的定义在归于当前段,并为之分配空间
二.带下滑线的
1._start
汇编程序的缺省入口,但是可以更改,想要更改其他标志,到相应的链接脚本中去用ENTRY指明其他入口标志。标号可以直接认为是地址。