下面是我用来使用-masm = intel输出到汇编语言列表的gcc命令行字符串。这两个命令行字符串都可以工作,但是它们都产生AT&T语法,而不是Intel语法。
stateful=True
但是会产生混合的Intel和AT&T语法。
gcc -S -masm=intel Svx.c
输出看起来像是经过修改的Intel语法,但是未翻译用于堆栈处理的AT&T特定的cfi指令。加上DWORD PTR -4 [rbp],1不是Intel语法。
为什么我将AT&T和Intel语法与-masm = intel混合使用?
答案 0 :(得分:2)
CFI伪指令为directives for the GNU assembler。通常,此类指令(以.
开头)与您选择的汇编方言无关,因此,您担心的行不是“特定于AT&T”的,甚至与AT&T。
而add DWORD PTR -4[rbp],1
是 Intel语法。