『壹』 高級語言和匯編語言有什麼區別,哪一個的執行效率更高。
1、可讀性:
高級語言可讀性、可維護性較佳,匯編語言的可讀性較差。
2、程序的執行效率:
匯編語言程序的佔用空間小,執行速度快,執行效率高,高級語言佔用的空間大,執行效率較低。
3、可維護性:
匯編語言可維護性低很多,代碼復雜,針對性撰寫程序,可以得到速度快、穩定性高的結果。高級語言的可維護性較高。但是速度較慢,穩定性不高。
執行效率:匯編語言編寫的源程序比高級語言編寫的源程序執行效率高。
(1)匯編語言編譯時間擴展閱讀:
匯編語言優缺點:
優點
匯編語言作為機器語言之上的第二代編程語言,它也有很多優點:
可以輕松地讀取存儲器狀態以及硬體I/O介面情況
編寫的代碼因為少了很多編譯的環節,可以能夠准確的被執行
作為一種低級語言,可擴展性很高
缺點
因為代碼非常單調,特殊指令字元很少,所以造成了代碼的冗長以及編寫的困難
因為匯編仍然需要自己去調用存儲器存儲數據,很容易出現BUG,而且調試起來也不容易
就算完成了一個程序,後期維護時候也需要耗費大量的時間。
因為機器的特殊性造成了代碼兼容性差的缺陷。
高級語言特點
高級編程語言作為一種通用的編程語言,它的語言結構和計算機本身的硬體以及指令系統無關,它的可閱讀性更強,能夠方便的表達程序的功能,更好的描述使用的演算法。
容易被初學者所掌握,很容易學習。而且容易學習掌握。
高級編程語言因為是一種編譯語言,所以他的運行速度比匯編程序要低,同時因為高級語言比較冗長,所以代碼的執行速度也要慢一些。
參考資料來源:網路-匯編語言
參考資料來源:網路-高級語言
『貳』 在早期沒有操作系統的前提下 匯編語言的編譯如何完成 我是說匯編語言剛剛誕生四時
人工查表,找出機器碼,再用開關輸入。
http://hi..com/do_sermon/item/ff7659828b91a7caee083d74
『叄』 匯編語言的發展歷程
說到匯編語言的產生,首先要講一下機器語言。機器語言是機器指令的集合。機器指令展開來講就是一台機器可以正確執行的命令。電子計算機的機器指令是一列二進制數字。計算機將之轉變為一列高低電平,以使計算機的電子器件受到驅動,進行運算。
上面所說的計算機指的是可以執行機器指令,進行運算的機器。這是早期計算機的概念。在我們常用的PC機中,有一個晶元來完成上面所說的計算機的功能。這個晶元就是我們常說的CPU(Central Processing Unit,中央處理單元)。每一種微處理器,由於硬體設計和內部結構的不同,就需要用不同的電平脈沖來控制,使它工作。所以每一種微處理器都有自己的機器指令集,也就是機器語言。
早期的程序設計均使用機器語言。程序員們將用0, 1數字編成的程序代碼打在紙帶或卡片上,1打孔,0不打孔,再將程序通過紙帶機或卡片機輸入計算機,進行運算。這樣的機器語言由純粹的0和1構成,十分復雜,不方便閱讀和修改,也容易產生錯誤。程序員們很快就發現了使用機器語言帶來的麻煩,它們難於辨別和記憶,給整個產業的發展帶來了障礙,於是匯編語言產生了。
匯編語言的主體是匯編指令。匯編指令和機器指令的差別在於指令的表示方法上。匯編指令是機器指令便於記憶的書寫格式。 操作:寄存器BX的內容送到AX中1000100111011000機器指令movax,bx匯編指令此後,程序員們就用匯編指令編寫源程序。可是,計算機能讀懂的只有機器指令,那麼如何讓計算機執行程序員用匯編指令編寫的程序呢?這時,就需要有一個能夠將匯編指令轉換成機器指令的翻譯程序,這樣的程序我們稱其為編譯器。程序員用匯編語言寫出源程序,再用匯編編譯器將其編譯為機器碼,由計算機最終執行。
『肆』 C語言:#define N 5 不佔用運行時間,那麼佔用編譯時間嗎
是滴。宏定義不佔運行時間,但佔用編譯時間。
宏是簡單的文本替換,函數調用有開銷的。 編譯鏈接後才能運行!
『伍』 為什麼匯編語言編出來的程序要比高級語言編出來的執行效率高
這個沒有一定的說法,取決於編譯器的聰明程度。
一般的語言,如C語言是首先將C語言編譯為匯編,然後匯編轉為機器碼。而用匯編的寫則是直接由匯編到機器碼。那麼這兩者的速度差異取決於編譯器在編譯的時候產生的匯編碼是否比程序員手寫的更為高效和快速了。
早期的時候編譯器很差,產生的匯編碼沒有程序員手工寫的高效,而現在編譯器大大的聰明了,所以這兩者的速度是很難講的。
不過大部分情況下,編譯器翻譯的都要差,所以速度沒有手工寫的匯編碼快。加上JAVA、c#語言等先要轉成一個中間語言,再翻譯成匯編碼,這個就更差了。
『陸』 匯編語言發展史及過程
計算機編程語言的發展,經歷了從機器語言,匯編語言,高級語言課程。
機器語言
電子計算機。使用由「0」和「1」的二進制數,二進制的計算機語言。開始發明的計算機,只能放下你的谷租嗯計算機語言命令計算機做這做那,一句話,是寫一個字元串為「0」和「1」組成的序列,指令由計算機來執行這種語言是機器語言。機器語言是很痛苦的,尤其是在程序中需要的錯誤,特別是。在計算機程序中的每一台計算機指揮系統經常變化,以運行在另一台計算機上,必須有另一種編程,從而導致工作重復。然而,由於使用的語言為特定的計算機模型,因此計算效率是最高的,所有的語言。機器語言,這是一個第一代的計算機語言。
匯編語言
為了減輕使用機器語言編程的痛苦,這是一個有用的改進二進制字元串:簡潔的字母,符號的字元串,而不是一個特定的指令,如「ADD」代表加法器的「mov」表示數據傳輸,等等,因此,它很容易閱讀和理解方案做,誤差校正和維護變得容易,這種編程語言被稱為匯編語言中,第二代的計算機語言。但是,計算機是不知道這些符號的,這就需要一個專門的程序,專門負責這些符號被翻譯成機器語言的二進制數,這個翻譯程序稱為匯編。
匯編語言是同樣依賴於機器的硬體,便攜性不是很好,但效率還是非常高的,特定於計算機的硬體和匯編語言編程,准確地發揮計算機硬體的功能和專業知識准備完善的程序和高品質,它仍然是一種流行和??強大的軟體開發工具。
3。高級語言
從最初的交流與電腦的慘痛經歷,人們認識到,你應該設計一種語言,這種語言接近於數學語言或自然語言,而不依賴於計算機硬體,通用的編譯程序對所有機。於1954年,經過艱苦的努力,第一個完全脫離機器硬體的高級語言-FO RT RAN問世40多年來,數百個高層次的語言,幾十個重要的影響比大,比較常見的使用FO RT RAN,ALGOL,COBOL,BASIC,LISP,SNOBOL,PL / 1,P ascal,C,PROLOG,A DA,C + +,VC,VB,D elphi,J AVA等。
高級語言的發展也經歷了從早期的語言結構化編程語言,面向過程的編程語言的過程中,非程序。因此,軟體的發展,由最初的個體手工作坊式發展的工業化,工業生產流水線封閉式生產。
6晚了,越來越多,規模越來越大的軟體,軟體的生產基本上是從戰爭中,缺乏科學規范的系統規劃與測試,評估標准,其後果是大量的花巨資建立的軟體系統,不能使用,因為它包含的錯誤,甚至是一個巨大的損失,給人的印象是,軟體是越來越不可靠,所以很少或沒有的軟體錯誤。極大地震撼了計算機行業,被稱為「軟體危機」。意識:大型程序的准備,而不是寫一個小程序,它應該是一個新的技術應該是一樣的污水處理廠處理軟體開發的全過程。方案設計應易於保證正確性,也便於驗證正確性。 1969年,提出了結構化程序設計方法,在1970年,第一個結構化的編程語言-P ascal語言,標志著結構化程序設計開始的時期。
8月初開始,在軟體設計的思想,產生了革命,其結果是一個面向對象的編程。幾乎所有的面向過程的高級語言的程序在執行前,是一個的管道像一個模塊執行完成前,人們不能做任何事情,不能動態地改變方向的實施方案。這是不符合的一天到一天的事情,人們希望發生的一件事,一件事,那就是,而不是面向過程的,而應該是面向應用程序的功能,是對象(object)。方法集成軟體,作為硬體的一些通用的IC,生產,密切的功能模塊的包稱為軟體歧管,它具有與特定的應用程序無關,但可以結合對方,以執行特定應用程序的功能,而反復使用。用戶只關心介面(輸入和輸出),並能實現,如何實現,這是一個內部問題,用戶完全不關心,
C + +,VB,D elphi是一個典型的代表。
下一個高層次的語言發展目標的應用程序,換句話說,只需要告訴你想要做的程序,該程序可以自動生成演算法,自動處理,這是程序的編程語言。 (VC + +是一個高層次的面向對象的語言,VISUAL C + +是不是一種語言,只是開發工具,C和C + +是他的語言)
『柒』 匯編語言相對於高級語言有何優勢
由於匯編離硬體最近,可以更好地利用專用代碼的優勢,可以利用計算機特性(邏輯特性、匯流排結構、存儲器組織、高速緩存等)進行計算和數據處理、交換、移動等工作。
高級語言由於要照顧通用編程性能,往往沒有針對某cpu硬體結構等方面的特殊處理,處理計算也是標准化的,必然有內存使用、邏輯計算、數據處理方面的不優化之處。
因此匯編語言編譯出的程序效率高、代碼量小、執行速度快;但在可移植性、靈活性、適配性方面比較高級語言的程序表現差。匯編語言一般用於編制高級語言軟體系統中執行頻繁、效率核心、時間復雜度高的優化子程序編制。比如你可以在日常生活中發現某些軟體(比如視頻、語音播放和錄制)的專門針對某些處理器的優化插件。
『捌』 為什麼匯編語言編出來的程序要比高級語言編出來的執行效率高
因為匯編語言是面向機器的語言,和機器碼是一一對應的,眾所周知,計算機執行的是二進制的機器碼,所以匯編速度快,其他語言都是相對高級的語言,面向過程或面向對象,編譯後會生成較多的機器碼
『玖』 匯編語言編譯器的MASM編譯器介紹
MASM是Microsoft公司推出的匯編編譯器。它的版本從低到高經過了很多次的升級(微軟的通病,升級補丁多如牛毛)。每次升級除了例行的錯誤修正外都增加了一些新的功能,以至於到最後高版本和低版本的語法和功能相差很多,向下兼容性也不好。低版本的MASM固然無法編譯高版本的源程序,但高版本的MASM也可能無法正常編譯低版本的源程序,如MASM 4.0寫的源程序常常無法在MASM 6.x上編譯成功。在使用MASM系列編譯器時,如果不先搞清楚特定的語法和編譯選項可以在哪個版本上用,編譯中就會錯誤連篇。所以在這里有必要了解一下MASM各版本的演變過程
下表列出了不同版本MASM編譯器的區別。
版 本
簡 介
MASM 4.00
這是最先廣泛使用的一個MASM版本,適用於DOS下的匯編編程。它很精巧,但使用起來不是很智能化,需要用戶自己一板一眼地寫出所有的東西。很多教科書上講的8086匯編語法都是針對這個版本的,對程序員來說。它只比用Debug方便一點點。
MASM 5.00
MASM 5.00比4.00在速度上快了很多,並將段定義的偽指令簡化為類似 .code與.data之類的定義方式,同時增加了對80386處理器指令的支持,對4.00版本的兼容性很好
MASM 5.10
對程序員來說,這個版本最大的進步是增加了對@@標號的支持。這樣,程序員可以不再為標號的起名花掉很多時間。另外,MASM 5.10增加了對OS/2 1.x的支持
MASM 5.10B
1989年推出,比上一個版本更穩定、更快,它是傳統的DOS匯編編譯器中最完善的版本
MASM 6.00
1992年發布,有了很多的改進。編譯器可以使用擴展內存,這樣可以編譯更大的文件,可執行文件名相應從Masm.exe改為Ml.exe。從這個版本開始可以在命令行上用*.asm同時編譯多個源文件,源程序中數據結構的使用和命令行參數的語法也更像C的風格。最大的改進之一是開始支持 .if/.endif這樣的高級語法,這樣,使用復雜的條件分支時和用高級語言書寫一樣簡單,可以做到幾千行的代碼中不定義一個標號;另外增加了invoke偽指令來簡化帶參數的子程序調用。這兩個改進使匯編代碼的風格越來越像C,可讀性和可維護性提高了很多
MASM6.00A
未發售的版本
MASM 6.00B
最後一個支持OS/2的MASM版本,修正了上一版本中的一些錯誤
MASM 6.10
修正了一些錯誤,同時增加了/Sc選項,可以在產生的list文件中列出每條指令使用的時鍾周期數
MASM6.10A
1992年發布,修正了一些內存管理方面的問題
MASM 6.11
1993年11月發布,支持Windows NT,可以編寫Win32程序,同時支持Pentium指令,但不支持MMX指令集
MASM6.11C
1994年發布,增加了對Windows 95 VxD的支持
MASM 6.12
1997年8月發布,增加 .686,.686P,.MMX聲明和對相應指令的支持
MASM 6.13
1997年12月發布,增加了 .K3D聲明,開始支持AMD處理器的3D指令
MASM 6.14
這是一個很完善的版本,它在 .XMM中增加了對Pentium III的SIMD指令集的支持,相應增加了OWORD(16位元組)的變數類型
MASM 6.15