我希望在编译一些代码(例如C)后,看到机器语言或程序集中生成的代码。怎么办?
答案 0 :(得分:3)
许多编译器(包括gcc
和clang
)都有一个-S
选项,使它们成为输出程序集而不是二进制文件。
或者,您可以使用反汇编程序查看现有二进制文件的程序集。例如,GNU binutils中的objdump
可以使用-d
(--disassemble
)或-D
(--disassemble-all
)选项向您显示给定二进制文件的程序集。< / p>
答案 1 :(得分:2)
在https://gcc.gnu.org/onlinedocs/gcc/Overall-Options.html#Overall-Options找到GCC文档(假设gcc):
-S 在编译阶段之后停止;不要组装。对于指定的每个非汇编器输入文件,输出采用汇编程序代码文件的形式。 默认情况下,源文件的汇编程序文件名是通过将后缀“.c”,“。i”等替换为“.s”来完成的。 不需要编译的输入文件将被忽略。
例如,gcc -S hello.c
将输出名为hello.s
的程序集文件。
答案 2 :(得分:0)
答案 3 :(得分:0)
如果您正在编译源代码:gcc -S file.c
如果您没有源代码,只需要二进制文件:objdump -d exe