小编典典

如何使用 gcc 生成 Intel 语法的汇编代码?

all

gcc -S选项将以 AT&T 语法生成汇编代码,有没有办法以 Intel 语法生成文件?或者有没有办法在两者之间转换?


阅读 53

收藏
2022-08-24

共1个答案

小编典典

利用-masm=intel

gcc -S -masm=intel -Og -fverbose-asm test.c

这适用于 GCC,以及 clang3.5 及更高版本。 GCC
手册

  • -masm=dialect
    使用选定的方言输出 asm 指令。支持的选项是 intel 或 att(默认选项)。达尔文不支持英特尔。

对于 Mac OSX,请注意默认情况下,该gcc命令实际上运行 clang。现代 clang
支持-masm=intel作为这个的同义词,但这总是适用:

clang++ -S -mllvm --x86-asm-syntax=intel test.cpp

请注意,在 clang 14 之前,这不会 改变 clang
处理内联asm()语句的方式,这与 GCC 不同

这些是 Matt Godbolt 的 Compiler Explorer 站点默认使用的选项:https
://godbolt.org/

2022-08-24