2011-04-04 80 views
3

我创建了一个非常小的代码来添加两个整数并将结果保存在另一个变量中,无论是汇编语言还是c语言。程序集中的代码花费617字节,但C语言中的代码花费了25k字节!为什么有巨大的差异? 另外我如何查看我写的C代码的汇编符号指令?可执行文件的大小?

+1

实际上,我在前面阅读过一篇关于同一主题的非常棒的帖子:http://blog.ksplice.com/2010/03/libc-free-world/。我希望这对任何稍后重新访问此文件的人都有用:) – susmits 2011-06-03 15:24:43

回答

4

高级语言有一定的开销。在汇编时,你所拥有的正是你所说的。

在这种情况下,您看到的开销可能是标准组件的静态绑定,例如printf。可能的一个include语句添加了这些。

如果你想看看你的输出是什么样的,你将需要一个修剪器。 HereNASM拆除者的文档,如果你想看一看。

您可以通过不包含任何东西来避免某些开销,而是以类似于装配过程中的方式实现功能。