📄 subject_47337.htm
字号:
<p>
序号:47337 发表者:李珠我 发表日期:2003-07-19 20:11:08
<br>主题:一个很初级的问题!
<br>内容:为什么在不同的编译器编译出的程序执行效率会有差别?比如用汇编得到的程序效率就比较高。这跟什么因素有关?
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:cellar 回复日期:2003-07-20 16:27:39
<br>内容:跟编译器有关呗,看看这个可能说明问题<BR>在VC6.0下,用debug方式,做如下实验<BR>一、b=a*0;<BR>这一句的汇编源码是:<BR>0040B80F mov dword ptr [ebp-8],0<BR>真是变态,编译时直接就计算出了0,然后赋给b<BR>二、b=a*1;<BR>0040B80F mov eax,dword ptr [ebp-4]<BR>0040B812 mov dword ptr [ebp-8],eax<BR>聪明,没有做乘1,直接把a给了b<BR>三、b=a*2;<BR>0040B80F mov eax,dword ptr [ebp-4]<BR>0040B812 shl eax,1<BR>0040B814 mov dword ptr [ebp-8],eax<BR>用左移一位,提高效率<BR>四、b=a*3;<BR>0040B80F mov eax,dword ptr [ebp-4]<BR>0040B812 imul eax,eax,3<BR>0040B815 mov dword ptr [ebp-8],eax<BR>这一次老老实实算的<BR>五、b=a*1024;<BR>0040B80F mov eax,dword ptr [ebp-4]<BR>0040B812 shl eax,0Ah<BR>0040B815 mov dword ptr [ebp-8],eax<BR>又用移位,聪明呀<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -