X86-64的ATT格式指的是x86-64架构下的汇编语言代码格式,与Intel的语法格式(Intel格式)相对应。ATT格式通常与GNU汇编器(Gas)一起使用。以下是ATT格式的一些特点和详细说明:
-
操作数顺序:在ATT格式中,操作数的顺序是"源操作数,目的操作数",与Intel格式相反。例如,
movl %eax, %ebx
表示将eax的值移动到ebx中。 -
立即数表示:在ATT格式中,使用
$
符号来表示立即数。例如,movl $10, %eax
表示将值10移动到eax寄存器中。 -
寄存器表示:在ATT格式中,寄存器名称前面会加上
%
符号。例如,%eax
表示eax寄存器。 -
内存地址表示:在ATT格式中,内存地址使用
offset(base, index, scale)
的形式表示,其中offset
是偏移量,base
是基础寄存器,index
是索引寄存器,scale
是比例因子。例如,-4(%ebp)
表示ebp减4的内存地址。 -
立即数大小写:在ATT格式中,大小写敏感。例如,
$0xFF
和$0xff
是不同的。
ATT格式与Intel格式的详细比较
ATT格式:
-
语法结构:
- 操作数的顺序是 目的操作数, 源操作数,与 Intel 格式相反。
- 寄存器名称以
%