2011-04-23 76 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和程序集之间建立链接。