汇编语言编程既然效率高、体积小那么为什么软件不用汇编语言编写呢? 为什么说用高级语言写的程序,执行效率没有汇编高?这些高级语言...
\u4e3a\u4ec0\u4e48\u4e0d\u7528\u6c47\u7f16\u8bed\u8a00\u7f16\u5199\u7a0b\u5e8f\u800c\u53d1\u5c55\u4e3a\u7528c\u8bed\u8a00\u6765\u7f16\u5199\u7a0b\u5e8f\u5462\uff1f \u7a0b\u5e8f\u8bbe\u8ba1\u7684\u4efb\u52a1\u6709\u54ea\u4e9b\uff1f1\u3001\u63d0\u9ad8\u7f16\u7a0b\u7684\u6548\u7387\u3002\u6c47\u7f16\u8bed\u8a00\u662f\u4f4e\u7ea7\u8bed\u8a00\uff0c\u7f16\u5236\u7a0b\u5e8f\u7684\u8fc7\u7a0b\u6f2b\u957f\uff0c\u4e0d\u6613\u638c\u63e1\uff0c\u4f7f\u7528\u8005\u7a00\u5c11\u3002\u800cc\u8bed\u8a00\u6b63\u597d\u76f8\u53cd\u3002
2\u3001\u7a0b\u5e8f\u8bbe\u8ba1\u7684\u4efb\u52a1\uff1a\u5f04\u6e05\u95ee\u9898\uff0c\u63d0\u51fa\u89e3\u51b3\u65b9\u6848\uff0c\u753b\u51fa\u7a0b\u5e8f\u6846\u56fe\uff0c\u8f6c\u6362\u6210\u7a0b\u5e8f\uff0c\u4e0a\u673a\u8c03\u8bd5\u8fd0\u884c\u3002
\u9ad8\u7ea7\u8bed\u8a00\u4e3b\u8981\u662f\u7ed9\u4eba\u770b\u7684\uff0c\u5373\u4f7f\u5b9e\u73b0\u7684\u76ee\u7684\u5b8c\u5168\u76f8\u540c\uff0c\u4e0d\u540c\u7684\u7a0b\u5e8f\u5458\u5199\u51fa\u6765\u7684\u9ad8\u7ea7\u8bed\u8a00\u90fd\u5f88\u53ef\u80fd\u4f1a\u770b\u8d77\u6765\u5b8c\u5168\u4e0d\u540c\uff0c\u56e0\u6b64\u7f16\u8bd1\u5668\u5728\u628a\u9ad8\u7ea7\u8bed\u8a00\u7f16\u8bd1\u4e3a\u673a\u5668\u7801\u7684\u8fc7\u7a0b\u4e2d\uff0c\u5c31\u96be\u514d\u4f1a\u4ea7\u751f\u5f88\u591a\u7684\u5197\u4f59\u4ee3\u7801\uff0c\u6bd4\u5982\u5728\u6c47\u7f16\u8bed\u8a00\u4e2d\u4ecea\u70b9\u5230b\u70b9\u80fd\u591f\u4e00\u6b65\u5230\u8fbe\u7684\uff0c\u5728\u9ad8\u7ea7\u8bed\u8a00\u7f16\u8bd1\u7684\u4ee3\u7801\u4e2d\u5374\u6709\u53ef\u80fd\u6ee1\u4e16\u754c\u4e71\u8f6c\u628a\u6574\u4e2a\u5b57\u6bcd\u8868\u90fd\u8d70\u4e00\u906d\u540e\u624d\u5230\u8fbeb\uff0c\u5c3d\u7ba1\u7ed3\u679c\u770b\u8d77\u6765\u662f\u4e00\u6837\u7684\uff0c\u4f46\u6548\u7387\u5c31\u4e0d\u53ef\u540c\u65e5\u800c\u8bed\u4e86\u3002
\u5f53\u7136\u4e86\uff0c\u50cfjs\u4e4b\u7c7b\u7684\u811a\u672c\u8bed\u8a00\u4e5f\u662f\u9ad8\u7ea7\u8bed\u8a00\u554a\uff0c\u5b83\u4eec\u662f\u89e3\u6790\u6267\u884c\u7684\uff0c\u6548\u7387\u5f53\u7136\u66f4\u52a0\u6ca1\u6709\u6c47\u7f16\u8bed\u8a00\u9ad8\u4e86\u3002
虽然所有程序都要有转化汇编这一条,但是人家都是一个千锤百炼的编译器在做这个事,可靠性不用怀疑,如果用汇编,这种事就要亲自上手,你觉得一个程序员写的汇编能和编译器拼可靠性吗??
编程首要任务是缩短开发周期短,工作量小,至于代码运行慢,根本就不是个事,高性能CPU一大把,你用汇编导致的工期延长,买几百CPU没问题,编程发展到今天,汇编除了进行BUG排查,底层代码移植,关键代码编写,需要用,其他都不用。。。因为应用软件用汇编,几乎变的不可能,连个有效的开发库都没有,算个乘方开方这些数学上的东西都是个问题,你说这程序怎么编。。。。。
汇编语言程序的运行效率高一些,但它开发需要的人工太多太多了。
也就是说,它的开发效率很低很低。
现代计算机硬件性能提升很快,运行效率低可以用硬件性能来弥补。
软件开发的效率提升难度很大,它才是关乎软件的生命的关键。
高效地开发(包括维护、升级)是至关重要的,在大多数时候,这比软件的运行效率要重要很多很多。
现在,除了极少数对运行效率有极限需求的小数模块(如驱动程序,核心引擎等)以外,绝大多数系统软件和应用软件,都采用高级语言开发。
不够直观啊
我们公司一个简单的项目汇编写了4万多行,c51写只有8000多行
通过读汇编来了解一个模块的功能太麻烦,很有可能你读了一串都不知道在干什么,而且要修改的时候也很麻烦.用汇编的时候堆栈要自己处理,变量保存的位置,函数传递的参数全部都要自己安排,工作量一大维护起来就复杂了
相对而言用c51这类语言编写的时候这类东西全部都交给编译器自己解决,程序员相对而言更加贴近业务的实现,而不是一直在考虑底层的操作,而且也更加易读
现在的芯片速度越来越快,保存代码的空间也越来越大,而且现在的编译器也一直在优化,所以很多时候需要考虑的不是代码的工作效率而是程序员的工作效率
一般情况下,与机器对话的任务是交给操作系统的,就像我们要了解老外的意思可以让翻译来解释,没必要我们直接去跟他对话。
当然,有时候我们必须去跟老外直接沟通,这时个我们如果能用对方家乡话最好,可这样对我们来说学习成本太高了,用个中国式英语如果他能理解,那不就得了。所以,能用C处理的时候,一般不会用汇编的。
汇编语言复杂,语言发展到现在越来越容易了
绛旓細姹囩紪閫氱敤鎬у樊锛屼笉鍚屽瀷鍙风殑CPU锛岄兘浼氬甫鏉ュ法澶у樊寮锛屾眹缂缂轰箯涓涓湁鏁堢殑搴曞眰绠$悊锛岀紪鍐欑殑绋嬪簭浼欱UG鎴愬爢锛屾眹缂栫己涔忓悇绉嶅紑鍙戝寘鏀寔锛岀紪澶嶆潅鐨勭▼搴忓嚑涔庢垚涓轰笉鍙兘锛屼粬鐨勭己鐐规牴鏈棤娉曠敤瀹冪殑鏁堢巼寮ヨˉ锛屽鏋滅湡鐢姹囩紪锛鍙嶈屼細鍥犱负绋嬪簭鍐欑殑韫╄剼锛屽弽鑰岃繍琛屾晥鐜囦篃澶уぇ闄嶄綆銆傘傘傚彧鏈夌Щ妞浠g爜浼氱敤浼氱紪鍐欙紝鍥犱负闇瑕佷粬杩涜...
绛旓細棣栧厛锛姹囩紪璇█鐨勫ぇ閮ㄥ垎璇彞鐩存帴瀵瑰簲鐫鏈哄櫒鎸囦护锛屾墽琛岄熷害蹇紝鏁堢巼楂橈紝浠g爜浣撶Н灏锛屽湪閭d簺瀛樺偍鍣ㄥ閲忔湁闄愶紝浣嗛渶瑕佸揩閫熷拰瀹炴椂鍝嶅簲鐨勫満鍚堟瘮杈冩湁鐢紝姣斿浠櫒浠〃鍜屽伐涓氭帶鍒惰澶囦腑銆傚叾娆★紝鍦ㄧ郴缁熺▼搴忕殑鏍稿績閮ㄥ垎锛屼互鍙婁笌绯荤粺纭欢棰戠箒鎵撲氦閬撶殑閮ㄥ垎锛屽彲浠ヤ娇鐢ㄦ眹缂栬瑷銆傛瘮濡傛搷浣滅郴缁熺殑鏍稿績绋嬪簭娈点両/O鎺ュ彛鐢佃矾鐨勫垵濮...
绛旓細C璇█鍜姹囩紪璇█鐨勫尯鍒細姹囩紪锛鏁堢巼楂橈紝瀵圭‖浠剁殑鍙搷鎺фф洿寮锛屼綋绉皬锛屼笉鏄撶淮鎶わ紝鍙Щ妞嶆у緢宸紱C:鏁堢巼姣旇緝浣庯紝纭欢鍙搷鎺фф瘮杈冨樊锛岀洰鏍浠g爜浣撶Н澶э紝瀹规槗缁存姢锛屽彲绉绘鎬у緢濂姐傛眹缂栬瑷杩愯鏁堢巼楂樼殑鍘熷洜锛1. 姹囩紪璇█瀹炶川涓婃槸鏈哄櫒璇█鐨勫姪璁扮銆 CPU鍙兘杩愯瀹冩墍鏀寔鐨勬寚浠ら泦锛岃岃繖浜涙寚浠ら泦褰撲腑鐨...
绛旓細姹囩紪璇█鏄皢鐢0銆1缁勬垚鐨勬満鍣ㄨ瑷鐢ㄥ叿鏈夌畝鍗曡涔夌殑鑻辨枃浠g爜琛ㄧず锛屼互渚夸簬鐞嗚В鍜岀▼搴忓憳缂栫▼銆傛眹缂栬瑷閫氬父鐢ㄤ簬瀵圭‖浠剁殑鐩存帴鎿嶆帶銆傜敱浜庢眹缂栬瑷缂栧啓鐨勭▼搴忓緢灏忥紝鎵浠ラ氬父鍦ㄧ▼搴忎腑鏈鏍稿績鐨勩佹帶鍒剁‖浠剁殑浠g爜鍙互閲囩敤姹囩紪璇█缂栧啓锛屼竴鏂归潰鏄畨鍏紝鍙︿竴鏂归潰鎻愰珮杩愯閫熷害銆傛眹缂栬瑷(Assembly Language)鏄潰鍚戞満鍣ㄧ殑绋嬪簭...
绛旓細鏄殑銆傚洜涓姹囩紪姣擟鏇存帴杩戞満鍣ㄥ伐浣滅殑鏍稿績銆備絾鏄竴瀹氬緢绱
绛旓細棣栧厛,姹囩紪璇█鐨勫ぇ閮ㄥ垎璇彞鐩存帴瀵瑰簲鐫鏈哄櫒鎸囦护,鎵ц閫熷害蹇,鏁堢巼楂,浠g爜浣撶Н灏,鍦ㄩ偅浜涘瓨鍌ㄥ櫒瀹归噺鏈夐檺,浣嗛渶瑕佸揩閫熷拰瀹炴椂鍥炲搷鐨勫満鍚堟瘮杈冩湁鐢,姣斿浠櫒浠〃鍜屽伐涓氭帶鍒惰澶囦腑銆 鍏舵,鍦ㄧ郴缁熺▼寮忕殑鏍稿績閮ㄥ垎,浠ュ強涓庣郴缁熺‖浣撻绻佹墦浜ら亾鐨勯儴鍒,鍙互浣跨敤姹囩紪璇█銆傛瘮濡備綔涓氱郴缁熺殑鏍稿績绋嬪紡娈点両/O鎺ュ彛鐢佃矾鐨勫垵濮嬪寲绋嬪紡銆佸閮ㄨ澶...
绛旓細1銆佸彲璇绘э細楂樼骇璇█鍙鎬с佸彲缁存姢鎬ц緝浣筹紝姹囩紪璇█鐨勫彲璇绘ц緝宸2銆佺▼搴忕殑鎵ц鏁堢巼锛氭眹缂栬瑷绋嬪簭鐨勫崰鐢ㄧ┖闂村皬锛屾墽琛岄熷害蹇紝鎵ц鏁堢巼楂橈紝楂樼骇璇█鍗犵敤鐨勭┖闂村ぇ锛屾墽琛屾晥鐜囪緝浣庛3銆佸彲缁存姢鎬э細姹囩紪璇█鍙淮鎶ゆт綆寰堝锛屼唬鐮佸鏉傦紝閽堝鎬ф挵鍐欑▼搴忥紝鍙互寰楀埌閫熷害蹇佺ǔ瀹氭ч珮鐨勭粨鏋溿傞珮绾ц瑷鐨勫彲缁存姢鎬ц緝...
绛旓細涓嶈兘璇存祦涓嶆祦琛岋紝鍙槸鍚勭璇█鐨勫簲鐢ㄥ満鍚堜笉鍚屻傛眹缂栵細鏁堢巼楂橈紝瀵圭‖浠剁殑鍙搷鎺фф洿寮锛屼綋绉皬锛屼笉鏄撶淮鎶わ紝鍙Щ妞嶆у緢宸 C: 鏁堢巼姣旇緝浣庯紝纭欢鍙搷鎺фф瘮杈冨樊锛岀洰鏍浠g爜浣撶Н澶э紝瀹规槗缁存姢锛屽彲绉绘鎬у緢濂 鍗曠墖鏈篊璇█涓庢眹缂栫殑姣旇緝 濡傛灉浣犲仛寰楃▼搴忔瘮杈冨皬鍑爇鑰屽凡,鐢姹囩紪浠g爜绋嬪害浼氭瘮c灏忕偣锛屽簲涓轰綘鍙互瑙...
绛旓細涓庨珮绾ц瑷鐩告瘮锛屾眹缂栬瑷缂栧啓鐨勭▼搴忛氬父鈥滄墽琛鏁堢巼鏇撮珮鈥濄傛眹缂栬瑷缂栧啓鐨勭▼搴忥紝鍙互鐩存帴缈昏瘧涓烘満鍣ㄤ唬鐮侊紝璁$畻鏈鸿兘鐩存帴璇嗗埆锛涜屼娇鐢ㄩ珮绾缂栫▼璇█缂栧啓鐨勭▼搴忛渶瑕佺粡杩囦竴浜涙椂闂寸炕璇戯紝缈昏瘧鎴愭満鍣ㄦ墍鑳借瘑鍒殑浜岃繘鍒舵暟鎵嶈兘鐢辫绠楁満鍘绘墽琛岋紝闄嶄綆浜嗚绠楁満鐨勬墽琛屾晥鐜囥備笌楂樼骇璇█鐩告瘮锛屾眹缂栬瑷缂栧啓鐨勭▼搴忛氬父鈥滄墽琛屾晥鐜囨洿楂...
绛旓細楂樼骇璇█鏈缁堣繕鏄細琚紪璇戞垚鏈哄櫒璇█锛岃繖涓繃绋嬮兘鏄 缂栬瘧绋嬪簭瀹屾垚锛岃繖涓棿闅愬惈鐫涓嶅皯鏈煡鍥犵礌锛岄渶瑕佹敞鎰忋傛眹缂栬瑷鐩稿楂樼骇璇█锛屽彲璇绘с佸彲缁存姢鎬т綆寰堝锛涗笉杩囷紝閽堝鎬ф挵鍐欑▼搴忥紝鍙互寰楀埌 閫熷害蹇佸崰鐢ㄧ┖闂村皬銆佺ǔ瀹氭ч珮鐨勭粨鏋溿傚亣璁撅紝閽堝鏌愪竴灏侀棴鐜鎾板啓绋嬪簭锛屾眹缂栬瑷绋嬪簭鎵ц鏁堢巼缁濆楂樹簬楂樼骇璇█锛