為什麼不用匯編寫大型的應用程式

時間 2025-07-05 06:50:26

1樓:匿名使用者

因為組合語言是屬於低階計算機語言,它比任何的計算機語言更接近處理器的機器語言,具有指令意義簡單的特點;任何高階計算機語言信薯冊的一句表示式都要被編譯成幾個甚至幾十個彙編指令,所有你如果在開發大型軟體時手敗,要寫的程式量會很大,所以在組合語言與其他高階計算機語言之間選滑巨集擇,就應該選擇後者。

組合語言屬於應用軟體嗎?c語言源程式是應用軟體嗎?

2樓:好學者百科

不是,組合語言(assembly language)是任何一種用於電子計算機、微處理器、微控制器或其他可程式設計器件的低階語言,亦稱為符號語言。在組合語言中,用助記符代替機器指令的操作碼,用位址符號或標號代替指令或運算元的位址。

在不同的裝置中,組合語言對應著不同的機器語言指令集,通過彙編過程轉換成機器指令。特定的組合語言和特定的機器語言指令集是一一對應的,不同平臺之間不可直接移植。

在不同的系統,例如unix和windows,生成的可執行檔案是不同的,在windows中,生成的可執行檔案字尾為exe。但是,源**是一樣的,只是各自系統的編譯器不同。

編譯程式,彙編程式屬於什麼軟體?

3樓:c哦買嘎

編譯程式、彙編程式屬於系統軟體。

系統軟體:是能提高程式設計者的工作效率、方便使用者使用、可以對計算機進行管理的軟體。

包括:作業系統、監控軟體、編譯程式、彙編程式、資料庫、標準程式庫。

編譯程式是把用高階程式設計語言或計算機組合語言書寫的源程式,翻譯成等價的機器語言格式目標程式的翻譯程式,屬於採用生成性實現途徑實現的翻譯程式。

編譯程式以高階程式設計語言書寫的源程式作為輸入,而以組合語言或機器語言表示的目標程式作為輸出,編譯出的目標程式通常還要經歷執行階段,以便在執行程式的支援下執行,加工初始資料,算出所需的計算結果。

彙編程式是指把組合語言書寫的程式翻譯成與之等價的機器語言程式的翻譯程式,是為特定計算機或計算機系列設計的一種面向機器的語言,由彙編執行指令和彙編偽指令組成。

彙編程式輸入的是用組合語言書寫的源程式,輸出的是用機器語言表示的目標程式。

採用組合語言編寫程式雖不如高階程式設計語言簡便、直觀,但是彙編出的目標程式佔用記憶體較少、執行效率較高,且能直接引用計算機的各種裝置資源。它通常用於編寫系統的核心部分程式,或編寫需要耗費大量執行時間和即時性要求較高的程式段。

彙編程式主要有簡單彙編程式、模組彙編程式、條件彙編程式、巨集彙編程式、高階彙編程式幾種。

4樓:胖大海君

1 系統軟體:

是能提高程式設計者的工作效率、方便使用者使用、可以對計算機進行管理的軟體。

包括:作業系統、監控軟體、編譯程式、,彙編程式、資料庫、標準程式庫。

因此 很明確編譯程式,彙編程式屬於系統軟體。

2 只有為解決某一特殊問題而編寫的程式才能叫應用軟體。

5樓:網友

你的意思是 軟體分類中的 「系統軟體」麼。

想對應的是應用軟體。

6樓:水土第一

語言不是程式,程式不是軟體,

為什麼需要彙編程式,編譯程式或解釋程式

7樓:網友

編譯程式是必須的,使用者用高階語言或組合語言編寫的程式,計算機是不能執行的,必須要由編譯程式翻譯成機器碼程式,計算機才能識別和執行。否則,人們寫的各種程式都是無用的。

彙編程式並不是必須的,只是有些場合要用組合語言寫程式,或部分人還用組合語言寫程式,再由彙編程式(其實也是編譯程式)來翻譯。但現在,可以不用組合語言寫程式了。

至於解釋程式,現在幾乎不用了。這是在早期的計算機上,用高階語言寫的程式,並不用編譯成機器碼,而是可以直接執行高階語言程式,然後由解釋程式逐條進行翻譯,一邊翻譯一邊執行。這樣的執行程度是很慢的。

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

8樓:潘達

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

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

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

9樓:網友

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

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

10樓:一陣瘋兒啊

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

11樓:網友

不夠直觀啊。

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

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

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

12樓:網友

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

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

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

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

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

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

為什麼開發windows應用程式不用c而用

如果只是針對你這個問題,很簡單,就二字 成本!成本要分為二層意思 第一層是開發週期,c相對於其它沒有相應的應用框架,開發週期長,還有相應的風險 第二層是人力成本,c c 相對於其它其它語言學習難度有所增加,所以目前市場上大多薪水要 比其它程式設計師要略高,當然也是受第一層影響 為什麼android的...

用組合語言編寫時鐘程式,能顯示時分秒的,還要有秒錶就是計

雪蕻軒 stack1 segment stack dw 200 dup stack1 ends data segment space db 1000 dup pattern db 6 dup 0c9h,26 dup 0cdh 0bbh,6 dup db 6 dup 0bah,26 dup 20h 0...

怎麼用組合語言編寫程式,統計字串的長度並輸出

允天曼 ho彙編?不是很懂.用字串.length 看是不是能獲得長度?int i 字串.indexof 獲得位置字串.substring i, 組合語言編語言也分好多種的,你說的是哪一種語言 data segment msg1 db length shex db 0123456789abcdef m...