彙編語言
出自 MBA智库百科(https://wiki.mbalib.com/)
彙編語言(Assembler Language)
目錄[隱藏] |
什麼是彙編語言[1]
彙編語言是指能反映指令功能的助記符表達的電腦語言,它是符號化的機器語言。用彙編語言寫出的程式是彙編語言源程式,機器無法執行。必須用電腦配置好的彙編程式把它翻譯成機器語言目標程式,機器才能執行。這個翻譯過程就是彙編過程。彙編語言比機器語言在編寫、修改、閱讀方面均有很大改進,運行速度也快,但掌握起來比較困難。
彙編語言的特點[2]
彙編語言採用了助記符來編寫程式,比用機器語言的二進位代碼編程要方便些,在一定程度上簡化了編程過程。彙編語言的特點是用符號代替了機器指令代碼,而且助記符與指令代碼一一對應,基本保留了機器語言的靈活性。使用彙編語言能面向機器並較好地發揮機器的特性,得到質量較高的程式。
彙編語言是面向具體機型的,它離不開具體電腦的指令系統,因此,對於不同型號的電腦有著不同結構的彙編語言,而且,對於同一問題所編製的彙編語言程式在不同機型類別的電腦間是互不相通的。
彙編語言中使用了助記符號,對於用彙編語言編製的程式,電腦不能像用機器語言編寫的程式一樣直接識別和執行,必須經過預先放人電腦的“彙編程式”的加工和翻譯才能變成能夠被電腦識別和處理的二進位代碼程式。用彙編語言等非機器語言書寫的符號程式稱為源程式,運行時彙編程式要將源程式翻譯成目標程式。目標程式是機器語言程式.它被安置在記憶體的預定位置上後,就能被電腦的CPU處理和執行。
彙編語言像機器指令一樣,是硬體操作的控制信息,因而仍然是面向機器的語言,使用起來還是比較繁瑣費時,通用性也差。但是,彙編語言用來編製系統軟體和過程式控制制軟體,其目標程式占用記憶體空間少,運行速度快,有著高級語言不可替代的用途。
彙編語言指令能夠直接控制硬體,例如訪問I/O埠;而高級語言不提供對於硬體的控制。高級語言程式的效率取決於編譯器翻譯高級語言程式的方式,由於編譯器必須可以翻譯所有可能的高級語言代碼,因此在某些情況下編譯器翻譯出的機器語言可能不是最有效的機器語言。而彙編語言指令和機器語言指令是一一對應的,因此使用彙編語言可以確保代碼的高效性。編寫一個完整程式可能不能體現彙編語言高效率的優勢。若僅編寫部分程式,在執行時常常可以獲取較高的效率。在多數情況下,彙編語言程式員編寫彙編語言程式不是為了實現一個完整的系統或者是一個程式,而僅僅是編寫選定的模塊。例如,可以通過寫出口常式(exit routine)用戶化應用程式或操作系統。為了保證與宿主語言程式能正常介面,常常需要用彙編語言編寫這樣的出口常式。
彙編語言的優缺點[3]
一、彙編語言的優點
彙編語言的語句與機器語言的指令是一一對應的,因此它具有機器語言的一些特點,其優點如下。
(1)易於理解與記憶。
(2)能利用機器指令精確地描述演算法,編程質量高。
(3)所占存儲空間小。
(4)執行速度較快。
二、彙編語言的缺點
(1)與機器語言一樣,程式通用性差。每一種彙編語言都是為某種特定類型的電腦專門設計的,不同類型電腦的彙編語言不能通用。
(2)彙編語言與機器語言一樣都依賴於機器,與電腦硬體直接相關,也是面向機器的語言。
彙編語言的應用[2]
彙編語言作為最基本的編程語言之一,雖然它的應用範圍不算很廣,但重要性卻毋庸置疑,因為它能夠完成許多其他語言所無法完成的功能。例如Linux內核的絕大部分代碼是用C語言編寫的,但仍然不可避免地在某些關鍵地方使用了彙編代碼,其中主要是在Linux的啟動部分。由於這部分代碼與硬體的關係非常密切,即使是C語言也會有些力不從心,而彙編語言則能夠很好地揚長避短,最大限度地發揮硬體的性能。70%以上的系統軟體是用彙編語言編寫的。某些快速處理、位處理、訪問硬體設備等高效程式是用彙編語言編寫的。某些高級繪圖程式、視頻游戲程式也是用彙編語言編寫的。
彙編語言是理解整個電腦系統的最佳起點和最有效途徑.人們經常認為彙編語言的應用範圍很小,而忽視它的重要性。其實彙編語言對每一個希望學習電腦科學與技術的人來說都是非常重要的,是不能不學習的語言。所有可編程電腦都向人們提供機器指令,通過機器指令人們能夠使用機器的邏輯功能。所有程式,不論用何種語言編製,都必須轉成機器指令,運用機器的邏輯功能,其功能才能得以實現。機器的邏輯功能、軟體系統功能構築其上,硬體系統功能運行於下。彙編語言直接描述機器指令,比機器指令容易記憶和理解。通過學習和使用彙編語言,能夠感知、體會、理解機器的邏輯功能,向上為理解各種軟體系統的原理打下技術理論基礎;向下為掌握硬體系統的原理打下實踐應用基礎。學習彙編語言向上可以理解軟體,向下能夠感知硬體,是理解整個電腦系統的最佳起點。