正如这个问题所示,使用 g++,我可以做到g++ -S -masm=intel test.cpp
. 另外,使用 clang,我可以做到clang++ -S test.cpp
,但-masm=intel
clang ( ) 不支持warning argument unused during compilation: -masm=intel
。如何使用 clang 获得英特尔语法?
问问题
58541 次
3 回答
120
正如@thakis所指出的,较新版本的 Clang (3.5+) 接受该-masm=intel
参数。
对于旧版本,这应该会发出带有 Intel 语法的汇编代码:
clang++ -S -mllvm --x86-asm-syntax=intel test.cpp
您可以使用-mllvm <arg>
从 clang 命令行传入 llvm 选项。遗憾的是,这个选项似乎没有很好的文档记录,因此我只能通过浏览 llvm 邮件列表找到它。
于 2012-08-14T17:44:17.360 回答
47
从 clang r208683(clang 3.5+)开始,它可以理解-masm=intel
. 因此,如果您的 clang 足够新,您可以使用它。
于 2014-05-13T11:47:55.820 回答
17
假设您可以让 Clang 发出正常的 LLVM 字节码,然后您可以使用llc编译为汇编语言,并使用其--x86-asm-syntax=intel
选项以 Intel 语法获取结果。
于 2012-06-12T03:45:26.757 回答