为什么说汇编语言的执行效率高?
发布网友
发布时间:2022-05-13 06:17
我来回答
共1个回答
热心网友
时间:2023-11-24 09:52
呵呵,你这个问题倒是很有意思。
首先什么是执行效率。我们平常所说的执行效率就是使用相同的算法在相同输入条件下完成相同计算所产生的系统开销,目前来说一般会更多关注执行时间方面的开销。
你说的是没错,所有语言编写的代码最终要运行,都要转化成机器码。但是,由于这个“转化”所采用的方法不同,其所需要消耗的时间也使不同的。
具个简单的例子来说,比如把一个变量的值自加1,并执行100次,也就是下面这条语句:
for(i=0;i<100;)
{
i++;
}
那么对于一个没有充分优化的C语言编译器而言,你需要每次寻址内存找到变量,然后把变量值拷贝到寄存器,然后对寄存器自加1,然后把寄存器值写回到内存,整个过程需要反复执行100次。
但是如果你写汇编代码,那就没这么麻烦了,你只需要寻址内存一次,把变量读入寄存器,然后对寄存器自加100次,最后写回内存即可。你可以想见,这个汇编代码的执行速度要比C语言快得多,但它们所执行的功能是一样的。
当然,我前面这个例子只是用来说明问题,并不具有实践价值。实践中有很多因素影响程序的效率,例如编译方式、优化程度等等。而这些与程序员的素质也有关系,一个差的汇编程序很可能不如一个好的C语言程序执行效率高。