获取C ++代码的x86指令大小?

时间:2016-03-27 00:30:54

标签: linux gcc assembly compilation x86

在Visual Studio反汇编视图中,它显示了x86程序集的指令字节,对于C ++代码:

0F B6 54 24 25       movzx       edx,byte ptr [t]
^^ these are what I want

我希望能够获得每条指令的总指令大小,而C ++代码不必是Visual Studio项目的一部分。 理想情况下,我希望能够从C#应用程序中“解释”此信息。

最好的方法是什么? GCC是否可以选择在汇编列表中生成这些指令字节?我只在Visual Studio IDE中看到它们。

1 个答案:

答案 0 :(得分:1)

当然可以。然而,这不是gcc的功能,而是它是反汇编编译代码的工件。使用GCC可以直接编译到程序集,但它不会显示十六进制字节。要查看字节,请尝试以下操作:

gcc -c my_file.s

这将产生my_file.o。有了这个,现在试试这个:

objdump -d my_file.o

这将反汇编文件(右侧)并显示匹配的机器语言(左侧)。

问题更改后更新

而且,是的,您可以在Windows上安装Cygwin,在Cygwin下安装objdump。这将允许您以相同的方式轻松转储C#代码。