2011-04-23 53 views
1

有沒有地方可以找到並行的簡單C和x86程序的例子?我在互聯網上發現的例子似乎從「這裏是x86中的Hello World」直接跳轉到「編寫你自己的操作系統!」當你做一些像調用函數一樣的東西時,我會遇到內在的問題。並排C,x86程序

+0

你的意思是x86彙編語言?還是有一種叫做x86的語言? – 2011-04-23 07:52:36

回答

2

我建議看看GCC的中間組件的輸出,例如呼叫

gcc -S a.c 

再看看作爲

大部分時間裏,通過優化產生更小,更容易理解裝配,使你寧願使用

gcc -O -S a.c 
+0

+1也可以。我記不起開關了。 – 2011-04-23 07:59:47

0

如果您的意思是x86彙編語言,請使用objdump --disassemble myprog(在任何GNU系統上)顯示您的C程序生成的彙編語言。如果你的系統沒有objdump,你可以使用ndisasm。

0

我推薦ddd。你可以擁有兩個C源代碼(如果你用調試符號構建的話)和機器代碼顯示。您也可以交互式地探測代碼來探測寄存器和內存值。一個偉大的學習工具。

0

在gcc上,您可以使用-save-temps -fverbose-asm選項,它比-S選項更好,因爲它仍然會生成目標文件,並且還會獲得預處理器文件。 verbose-asm也很重要,因爲它會向程序集輸出添加註釋,從而使程序的函數和變量名稱與生成的彙編代碼之間建立鏈接。特別是在通過優化生成時,通常很難在源代碼C和程序集之間建立鏈接。