如题所述
汇编通用性差,不同型号的CPU,都会带来巨大差异,汇编缺乏一个有效的底层管理,编写的程序会BUG成堆,汇编缺乏各种开发包支持,编复杂的程序几乎成为不可能,他的缺点根本无法用它的效率弥补,如果真用汇编,反而会因为程序写的蹩脚,反而运行效率也大大降低。。。只有移植代码会用会编写,因为需要他进行硬件隔离,让软件编程在逻辑上和硬件无关。。。
虽然所有程序都要有转化汇编这一条,但是人家都是一个千锤百炼的编译器在做这个事,可靠性不用怀疑,如果用汇编,这种事就要亲自上手,你觉得一个程序员写的汇编能和编译器拼可靠性吗??
编程首要任务是缩短开发周期短,工作量小,至于代码运行慢,根本就不是个事,高性能CPU一大把,你用汇编导致的工期延长,买几百CPU没问题,编程发展到今天,汇编除了进行BUG排查,底层代码移植,关键代码编写,需要用,其他都不用。。。因为应用软件用汇编,几乎变的不可能,连个有效的开发库都没有,算个乘方开方这些数学上的东西都是个问题,你说这程序怎么编。。。。。
虽然所有程序都要有转化汇编这一条,但是人家都是一个千锤百炼的编译器在做这个事,可靠性不用怀疑,如果用汇编,这种事就要亲自上手,你觉得一个程序员写的汇编能和编译器拼可靠性吗??
编程首要任务是缩短开发周期短,工作量小,至于代码运行慢,根本就不是个事,高性能CPU一大把,你用汇编导致的工期延长,买几百CPU没问题,编程发展到今天,汇编除了进行BUG排查,底层代码移植,关键代码编写,需要用,其他都不用。。。因为应用软件用汇编,几乎变的不可能,连个有效的开发库都没有,算个乘方开方这些数学上的东西都是个问题,你说这程序怎么编。。。。。
温馨提示:答案为网友推荐,仅供参考
第1个回答 2013-07-06
汇编语言程序的运行效率高一些,但它开发需要的人工太多太多了。
也就是说,它的开发效率很低很低。
现代计算机硬件性能提升很快,运行效率低可以用硬件性能来弥补。
软件开发的效率提升难度很大,它才是关乎软件的生命的关键。
高效地开发(包括维护、升级)是至关重要的,在大多数时候,这比软件的运行效率要重要很多很多。
现在,除了极少数对运行效率有极限需求的小数模块(如驱动程序,核心引擎等)以外,绝大多数系统软件和应用软件,都采用高级语言开发。本回答被网友采纳
也就是说,它的开发效率很低很低。
现代计算机硬件性能提升很快,运行效率低可以用硬件性能来弥补。
软件开发的效率提升难度很大,它才是关乎软件的生命的关键。
高效地开发(包括维护、升级)是至关重要的,在大多数时候,这比软件的运行效率要重要很多很多。
现在,除了极少数对运行效率有极限需求的小数模块(如驱动程序,核心引擎等)以外,绝大多数系统软件和应用软件,都采用高级语言开发。本回答被网友采纳
第2个回答 2013-07-06
不够直观啊
我们公司一个简单的项目汇编写了4万多行,c51写只有8000多行
通过读汇编来了解一个模块的功能太麻烦,很有可能你读了一串都不知道在干什么,而且要修改的时候也很麻烦.用汇编的时候堆栈要自己处理,变量保存的位置,函数传递的参数全部都要自己安排,工作量一大维护起来就复杂了
相对而言用c51这类语言编写的时候这类东西全部都交给编译器自己解决,程序员相对而言更加贴近业务的实现,而不是一直在考虑底层的操作,而且也更加易读
现在的芯片速度越来越快,保存代码的空间也越来越大,而且现在的编译器也一直在优化,所以很多时候需要考虑的不是代码的工作效率而是程序员的工作效率
我们公司一个简单的项目汇编写了4万多行,c51写只有8000多行
通过读汇编来了解一个模块的功能太麻烦,很有可能你读了一串都不知道在干什么,而且要修改的时候也很麻烦.用汇编的时候堆栈要自己处理,变量保存的位置,函数传递的参数全部都要自己安排,工作量一大维护起来就复杂了
相对而言用c51这类语言编写的时候这类东西全部都交给编译器自己解决,程序员相对而言更加贴近业务的实现,而不是一直在考虑底层的操作,而且也更加易读
现在的芯片速度越来越快,保存代码的空间也越来越大,而且现在的编译器也一直在优化,所以很多时候需要考虑的不是代码的工作效率而是程序员的工作效率
第3个回答 2013-07-06
一般情况下,与机器对话的任务是交给操作系统的,就像我们要了解老外的意思可以让翻译来解释,没必要我们直接去跟他对话。
当然,有时候我们必须去跟老外直接沟通,这时个我们如果能用对方家乡话最好,可这样对我们来说学习成本太高了,用个中国式英语如果他能理解,那不就得了。所以,能用C处理的时候,一般不会用汇编的。
当然,有时候我们必须去跟老外直接沟通,这时个我们如果能用对方家乡话最好,可这样对我们来说学习成本太高了,用个中国式英语如果他能理解,那不就得了。所以,能用C处理的时候,一般不会用汇编的。
第4个回答 2013-07-06
汇编语言复杂,语言发展到现在越来越容易了