同样需要编译器为什么汇编语言比较快
的有关信息介绍如下:绝大多数情况下,并不是。
事实上除了对CPU工作模式极端熟悉的人,一般人是很难用汇编写出更高效的代码的。
编译器虽然智商比不了人,但是它更精通优化。生成高效的代码需要透彻地掌握硬件的工作模式,每个细节都要考虑清楚。而且这很大程度上是软件更擅长但人并不擅长的繁重无脑又要求极高精确性的机械化工作。
当然专业搞优化的人还是能打败编译器的,因为编译器能做到的人终究还是可以做到。而人要比编译器聪明得多。编译器只能遵循一些规定好的模式进行优化,人可以创造编译器根本不知道的优化方法。某些逻辑靠编译器是没办法生成出来的,只能由人直接用汇编写。汇编语言虽然也要编译,但是一般会和机器指令直接对应,相当于要求CPU在细节上严格按人的思路工作,而高级语言并不能控制太多细节。
1、汇编语言直接对应本地机器码,没有冗余,在算法相同时,无疑他的代码量是最短的!效率是最高的!
2、高级语言考虑到可移植性、通用性等,里面加入了环境条件判断、调试等等冗余代码,所以通常其编译后的代码量大得多,效率也低些。
比如:hello world!
汇编的可执行程序代码长度为30个字节;pascal编译的可执行程序的代码长度为2192字节。
C/C++编译器生成汇编清单,然后再生成机器码