AT&T 汇编伪指令说明
AT&T 汇编伪指令说明
.globl
或者 .global
.globl / .global 伪指令将符号定义为全局可链接的,跨文件可以访问的符号。
1 | .globl label_name |
.extern
.extern 定义外部符号
1 | .extern label_name |
.comm
和 .lcomm
.comm 定义 COMM (未初始化变量)类型的全局符号; .lcomm 定义 COMM (未初始化变量)类型的局部符号
1 | #.comm/.lcomm 符号名, 大小 |
.weak
.weak 伪指令将符号定义为弱类型,其他同名符号存在是,应该优先采用其他强类型的符号。
1 | .weak label_name |
.hidden
.hidden 伪指令将符号定义为隐藏属性。该符号为全局符号,但是对于 elf 文件来说,不暴露处理。加上此属性的符号,在生成的 .so 文件中,其他模块是找不到该符号的。
1 | .hidden label_name |
.type
.type 伪指令指明符号的类型,可以取值:object 或者 function。object 表示数据,function 表示函数。
1 | .type var1, @object |
.size
.size 伪指令指明符号的占用空间的大小
1 | .size var1, 4 |
.align
.align 指出紧跟的数据或者代码要求的对齐值。
1 | .align 4 |
.zero
填充多少个0
1 | .zero 4 |
.rept
和 .endr
用来重复汇编语句块,例子:
1 | .rept 3 |
.space
填充产生多个重复字节的值:
1 | # .space size, fill |