跳转至

编译器内置指令

安装器提供了一系列与架构相关的指令来方便操作,所有安装器内置的指令都以'.'开头。完整的列表请参见GNU文档,下面是部分常用的安装器内置指令。

指令 论点 描述
.align 整数 对齐到 2 的幂(.p2align 的别名)
.file “文件名” 发出文件名文件本地符号表
.globl symbol_name 将 symbol_name 发送到符号表(范围 GLOBAL)
.local symbol_name 将 symbol_name 发送到符号表(范围 LOCAL)
.comm 符号名称、大小、对齐 将公共对象发送到 .bss 部分
.common symbol_name,size,align 将公共对象发送到.bss节
.ident “字符串” 为了源兼容性而接受
.section [{.text,.data,.rodata,.bss}] 发出节(如果不存在,则默认为 .text)并设为当前节
.size 符号,符号 为了源兼容性而接受
.text 发出 .text 部分(如果不存在)并设为当前
.data 发出 .data 部分(如果不存在)并设为当前
.rodata 发出 .rodata 部分(如果不存在)并设为当前
.bss 发出 .bss 部分(如果不存在)并设为当前
.string “string” 发出字符串
.asciz "string" 发出字符串(.string 的别名)
.equ 名称、值 常量定义
.macro name arg1 [, argn] 开始宏定义\要替换的argname
.endm 结束宏定义
.type 符号,@function 为了源兼容性而接受
.option {relax,norelax,push,pop} 有关更详细的说明,请参阅 .option。
.byte 表达式 [, 表达式]* 8 位逗号分隔字
.2byte 表达式 [, 表达式]* 16 位逗号分隔字
.half 表达式 [, 表达式]* 16 位逗号分隔的单词
.short 表达式 [, 表达式]* 16 位逗号分隔字
.4byte 表达式 [, 表达式]* 32 位逗号分隔字
.word 表达式 [, 表达式]* 32 位逗号分隔的单词
.long 表达式 [, 表达式]* 32 位逗号分隔的单词
.8byte 表达式 [, 表达式]* 64 位逗号分隔字
.dword 表达式 [, 表达式]* 64 位逗号分隔字
.quad 表达式 [, 表达式]* 64 位逗号分隔字
.dtprelword 表达式 [, 表达式]* 32 位线程本地字
.dtpreldword 表达式 [, 表达式]* 64 位线程本地字
.p2align p2,[pad_val=0],max 对齐到 2 次幂
.balign b,[pad_val=0] 字节对齐