組合語言程式設計既然效率高 體積小那麼為什麼軟體不用組合語言編寫呢

2022-01-30 08:57:26 字數 2262 閱讀 7518

1樓:潘達

彙編通用性差,不同型號的cpu,都會帶來巨大差異,彙編缺乏乙個有效的底層管理,編寫的程式會bug成堆,彙編缺乏各種開發包支援,編複雜的程式幾乎成為不可能,他的缺點根本無法用它的效率彌補,如果真用彙編,反而會因為程式寫的蹩腳,反而執行效率也大大降低。。。只有移植**會用會編寫,因為需要他進行硬體隔離,讓軟體程式設計在邏輯上和硬體無關。。。

雖然所有程式都要有轉化彙編這一條,但是人家都是乙個千錘百鍊的編譯器在做這個事,可靠性不用懷疑,如果用彙編,這種事就要親自上手,你覺得乙個程式設計師寫的彙編能和編譯器拼可靠性嗎??

程式設計首要任務是縮短開發周期短,工作量小,至於**執行慢,根本就不是個事,高效能cpu一大把,你用彙編導致的工期延長,買幾百cpu沒問題,程式設計發展到今天,彙編除了進行bug排查,底層**移植,關鍵**編寫,需要用,其他都不用。。。因為應用軟體用彙編,幾乎變的不可能,連個有效的開發庫都沒有,算個乘方開方這些數學上的東西都是個問題,你說這程式怎麼編。。。。。

2樓:匿名使用者

一般情況下,與機器對話的任務是交給作業系統的,就像我們要了解老外的意思可以讓翻譯來解釋,沒必要我們直接去跟他對話。

當然,有時候我們必須去跟老外直接溝通,這時個我們如果能用對方家鄉話最好,可這樣對我們來說學習成本太高了,用個中國式英語如果他能理解,那不就得了。所以,能用c處理的時候,一般不會用彙編的。

3樓:一陣瘋兒啊

組合語言複雜,語言發展到現在越來越容易了

4樓:

不夠直觀啊

我們公司乙個簡單的專案彙編寫了4萬多行,c51寫只有8000多行通過讀彙編來了解乙個模組的功能太麻煩,很有可能你讀了一串都不知道在幹什麼,而且要修改的時候也很麻煩.用彙編的時候堆疊要自己處理,變數儲存的位置,函式傳遞的引數全部都要自己安排,工作量一大維護起來就複雜了

相對而言用c51這類語言編寫的時候這類東西全部都交給編譯器自己解決,程式設計師相對而言更加貼近業務的實現,而不是一直在考慮底層的操作,而且也更加易讀

現在的晶元速度越來越快,儲存**的空間也越來越大,而且現在的編譯器也一直在優化,所以很多時候需要考慮的不是**的工作效率而是程式設計師的工作效率

5樓:

組合語言程式的執行效率高一些,但它開發需要的人工太多太多了。

也就是說,它的開發效率很低很低。

現代計算機硬體效能提公升很快,執行效率低可以用硬體效能來彌補。

軟體開發的效率提公升難度很大,它才是關乎軟體的生命的關鍵。

高效地開發(包括維護、公升級)是至關重要的,在大多數時候,這比軟體的執行效率要重要很多很多。

現在,除了極少數對執行效率有極限需求的小數模組(如驅動程式,核心引擎等)以外,絕大多數系統軟體和應用軟體,都採用高階語言開發。

為什麼說用高階語言寫的程式,執行效率沒有彙編高?這些高階語言不都是要先編譯成組合語言嗎?

6樓:網海1書生

高階語言主要是給人看的,即使實現的目的完全相同,不同的程式設計師寫出來的高階語言都很可能會看起來完全不同,因此編譯器在把高階語言編譯為機器碼的過程中,就難免會產生很多的冗餘**,比如在組合語言中從a點到b點能夠一步到達的,在高階語言編譯的**中卻有可能滿世界亂轉把整個字母表都走一遭後才到達b,儘管結果看起來是一樣的,但效率就不可同日而語了。

當然了,像js之類的指令碼語言也是高階語言啊,它們是解析執行的,效率當然更加沒有組合語言高了。

7樓:杯具——悲劇

比如python是解釋性語言,執行同時編譯

高分!!為什麼用組合語言編出的程式要比c語言等高階語言編出的程式的體積要小呀?

8樓:匿名使用者

多數時候,高階語言編譯後,必然有許多中間**,優化也只能部分精簡。

其次,高階語言編譯器給目標**(exe程式)賦予了很多常規性的功能,比如,結構化異常處理例程(seh),---用彙編,除非自己加入,編譯器是不會做這些的。

9樓:

組合語言是最接近硬體的語言,當然可以直接對硬體進行操作了。

c語言即是低階語言的功能又有高階語言的特徵。

當然,最終的可執行檔案是一定要編譯或者彙編成機器語言執行的,但c語言畢竟要比組合語言高階,程式的**和所生成的可執行檔案一定要比組合語言多。

至於111111000011000實際就是高電平或者低電平,儲存的時候就是不同的方向的磁極,或者凸凹的表面。

為什麼組合語言編出來的程式要比高階語言編出來的執行效率高

組合語言程式設計,組合語言是一種什麼程式語言?

組合語言是用於電子計算機,微處理器,微控制器或其他可程式設計裝置的低階語言,e68a8462616964757a686964616f31333431366431也稱為符號語言。在組合語言中,助記符用於替換機器指令的操作碼,並且使用位址或運算元代替指令或運算元的位址。在不同的裝置中,組合語言對應於不同...

組合語言問題組合語言問題

微控制器中 沒有相等就跳轉的指令 其實,cjne實際上也實現了相等跳轉的功能的 cjne a,data,rel 如果不等跳到rel指令a 如果等就執行下一條指令 指令a.rel 指令b 假如有一條相等就跳轉的指令cje 實際上沒有 cje a,data,rel 相等跳到rel指令b 不等跳到指令b ...

組合語言題目,組合語言題目,求詳解

a2,b2,是a的平方,還是a 2?兩個數相乘,就要考慮溢位問題。y是32位?還是16位?需不需要考慮溢位?dseg segment org d 開始地址d a dw b dw c dw dseg ends assume cs cseg,ds dsegcseg segment start mov a...