我想知道 g++ 使用哪种 ASM 风格(AT&T 或 Intel)。我正在做一项作业,要求我提供各种 ASM 指令的定义。我看到了下面的内容:
movl %esp, %ebp
where %esp = stack pointer and %ebp = base pointer
Intel style上面的内容相当于:
movl destination, source
但是将基指针移入栈指针是没有意义的,让我怀疑g++是否使用了AT&T ASM风格。
这是我用来生成 ASM(和平台信息)的命令:
g++ -S src -o out.bin
OS: Fedora Linux 14, 2.6.35.10-74.fc14.i686
Compiler: gcc version 4.5.1 20100924 (Red Hat 4.5.1-4) (GCC)
我的问题:有没有办法明确告诉 g++ 正在生成哪种样式?有没有开关。
有错误的地方请指正。预先感谢!
最佳答案
G++ 的目标是 GNU 汇编器 gas
,它使用 AT&T 语法 (op src dest),除非您使用.intel_syntax
directive .
关于assembly - g++使用哪种ASM风格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5617051/