将c代码转换为x86程序集的简便方法?

Bob*_*Bob 19 c compiler-construction x86 assembly programming-languages

是否有一种简单的方法(如免费程序)可以将c/c ++代码转换为x86程序集?

我知道任何c编译器都做了非常类似的事情,我可以编译c代码,然后反汇编编译的可执行文件,但这有点过分,我想要的只是转换几行代码.

有谁知道一些可以做到这一点的程序?

编辑:我知道GCC编译器这样做,但它是AT&T语法,我正在寻找英特尔语法(不确定它是否称为英特尔语法).AT&T语法对我来说有点像胡言乱语,有些命令以相反的顺序使用操作数,而不是我习惯的方式,它可能会让人感到困惑.

Soa*_*Box 46

GCC可以使用以下命令行输出Intel语法汇编:

gcc -S input.c -o output.asm -masm=intel
Run Code Online (Sandbox Code Playgroud)


L̲̳*_*̲̳̳ 14

Gcc可以使用-S开关来实现它,但是在语法方面会很难看.

  • 但是你可以添加`-masm = intel`开关 (20认同)
  • 在 Mac OS X 上使用 `clang -S -mllvm --x86-asm-syntax=intel` (2认同)

Jam*_*lis 13

如果-S在命令行上传递选项,gcc将生成程序集.

Microsoft Visual C++将对该/FAs选项执行相同操作.

  • @Bob:VC++发出漂亮的英特尔语法汇编. (2认同)

Nor*_*sey 7

所述lcc编译器是一个多交叉编译.您可以通过它来生成英特尔语法汇编代码

lcc -S -Wf-target=x86/win32 foo.c
Run Code Online (Sandbox Code Playgroud)

我发现汇编代码lcc比现在gcc吐出的内容更容易阅读.