如何生成汇编代码与叮当在英特尔语法?

这个问题所示,使用 g + + ,我可以做 g++ -S -masm=intel test.cpp。 另外,对于 clang,我可以执行 clang++ -S test.cpp,但是 clang (warning argument unused during compilation: -masm=intel)不支持 -masm=intel。我怎么用 clang 得到英特尔语法?

65076 次浏览

假设您可以让 Clang 发出普通的 LLVM 字节码,然后您可以使用 有限责任公司编译成汇编语言,并使用其 --x86-asm-syntax=intel选项以 Intel 语法获得结果。

作为 以下由@thakis 指出,较新版本的 Clang (3.5 +)接受 -masm=intel参数。


对于较老的版本,这应该得到叮当声,以发出具有 Intel 语法的汇编代码:

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

可以使用 -mllvm <arg>从 clang 命令行传入 llvm 选项。遗憾的是,这个选项似乎没有很好的文档说明,因此我只是通过浏览 llvm 邮件列表找到了它。

至于叮当 R208683(叮当3.5 +) ,它理解 -masm=intel。所以如果你的部落足够新,你可以直接使用它。