assembly - g++使用哪种ASM风格

标签 assembly coding-style g++ intel att

我想知道 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/

相关文章:

c++ - 在 C++ 中编译模板结构

c++ - 堆栈模板不编译推送功能

c++ - std::thread 构造函数?特化?。 g++ 与 clang++

linux - 在汇编中进行除法时出现浮点异常(核心已转储)

c++ - 轻量级 C++ 编码标准中最关键的元素

assembly - nasm x86_64 中的 strcmp,寄存器

java - 字符数组与字符串 : which is better for storing a set of letters

jquery - 当让其他站点直接使用您站点中的脚本时需要考虑哪些事项?

c++ - 在 C++ 中声明方法 extern

c++ - bool返回值的函数,只设置整个寄存器的1个字节