列出编译对象使用的指令集 - 对于ARM和X86

时间:2012-07-31 20:34:43

标签: linux disassembly

这个问题适用于ARM和X86体系结构以及可执行文件和对象,我希望有一个编译代码段使用的指令集列表:这可能吗?

2 个答案:

答案 0 :(得分:1)

如果您使用的是Linux系统,并且正在处理ELF个文件,则file命令应报告指令集的内容。

修改

看起来您真正想要的是装配清单(我建议您编辑问题以使其清楚),这可以使用objdump -d obj.o获得。其他选项可用,请查看man objdump了解详情。

或者,如果您自己构建目标代码,则可以指示编译器输出assmebler(例如gcc -S src.c)。

答案 1 :(得分:1)

以下代码段只是我解决问题的快速而肮脏的解决方案(仅适用于英特尔助记符)。

objdump --no-show-raw-insn -M intel -d /usr/bin/objdump | awk '{if ($2 !~ ":" && $2 != "data32" && $2 != "file" && $2 != "of" && length($2) > 0) {print $2}}' | sort -u