如 这个问题所示,使用 g + + ,我可以做 g++ -S -masm=intel test.cpp。 另外,对于 clang,我可以执行 clang++ -S test.cpp,但是 clang (warning argument unused during compilation: -masm=intel)不支持 -masm=intel。我怎么用 clang 得到英特尔语法?
g++ -S -masm=intel test.cpp
clang++ -S test.cpp
warning argument unused during compilation: -masm=intel
-masm=intel
假设您可以让 Clang 发出普通的 LLVM 字节码,然后您可以使用 有限责任公司编译成汇编语言,并使用其 --x86-asm-syntax=intel选项以 Intel 语法获得结果。
--x86-asm-syntax=intel
作为 以下由@thakis 指出,较新版本的 Clang (3.5 +)接受 -masm=intel参数。
对于较老的版本,这应该得到叮当声,以发出具有 Intel 语法的汇编代码:
clang++ -S -mllvm --x86-asm-syntax=intel test.cpp
可以使用 -mllvm <arg>从 clang 命令行传入 llvm 选项。遗憾的是,这个选项似乎没有很好的文档说明,因此我只是通过浏览 llvm 邮件列表找到了它。
-mllvm <arg>
至于叮当 R208683(叮当3.5 +) ,它理解 -masm=intel。所以如果你的部落足够新,你可以直接使用它。