2011-04-04 54 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拆除者的文檔,如果你想看一看。

您可以通過不包含任何東西來避免某些開銷,而是以類似於裝配過程中的方式實現功能。

相關問題