2010-06-25 95 views

回答

1

这难道不是1980年代的吗?目前处理器是否在同一时间运行这些指令?我记得在我的68000天里,当一个div是100+周期,并且只有3或4个转变时......当处理器继续前进时,不确定情况如何。

为什么不让编译器生成汇编程序文件,并查看它生成的内容并运行一些基准测试。

我在网上发现了这个可能对你有帮助的事......虽然它是'C',但我认为大部分选项都是一样的。

Q: How can I peek at the assembly code generated by GCC? 

Q: How can I create a file where I can see the C code and its assembly 
    translation together? 

答:使用-S(注:资本S)切换到GCC,它会发出汇编代码到一个文件具有.S扩展。例如,下面的命令:

GCC -O2 -S -c foo.c的

将离开生成的汇编代码上的文件foo.s.

如果要与它被转换到组装在一起看到C代码,使用命令行是这样的:

GCC -c -g -Wa,-a,-ad [其他GCC选项] foo.c> foo.lst

它将输出组合的C /程序集列表到文件foo.lst。

如果您需要同时获取汇编代码和编译/链接程序,您可以将-save-temps选项指定给GCC(这会将包含.s文件的所有临时文件保留在当前目录中),或者使用-Wa,aln = foo.s选项指示汇编程序将C代码(连同十六进制机器代码和一些其他信息)的汇编转换输出到以=命名的文件中。

+0

我实际上可以从上下文菜单中生成汇编代码。我不知道我在看什么,但似乎在这两种情况下都存在(算术右移)。如果我除以3,在asr之前有一条smul指令。 – Morrowless 2010-06-25 11:47:15

+0

doen't那么回答你的问题,然后....如果你这几百万次调用这两个不同的代码,那么你可以肯定地看到。听起来就像它优化了我。 – AnthonyLambert 2010-06-25 16:49:15