登錄

匯編語言

百科 > 信息技術 > 匯編語言

1.什么是匯編語言[1]

  匯編語言是指能反映指令功能的助記符表達的計算機語言,它是符號化的機器語言。用匯編語言寫出的程序是匯編語言源程序,機器無法執(zhí)行。必須用計算機配置好的匯編程序把它翻譯成機器語言目標程序,機器才能執(zhí)行。這個翻譯過程就是匯編過程。匯編語言比機器語言在編寫、修改、閱讀方面均有很大改進,運行速度也快,但掌握起來比較困難。

2.匯編語言的特點[2]

  匯編語言采用了助記符來編寫程序,比用機器語言的二進制代碼編程要方便些,在一定程度上簡化了編程過程。匯編語言的特點是用符號代替了機器指令代碼,而且助記符與指令代碼一一對應,基本保留了機器語言的靈活性。使用匯編語言能面向機器并較好地發(fā)揮機器的特性,得到質量較高的程序。

  匯編語言是面向具體機型的,它離不開具體計算機的指令系統(tǒng),因此,對于不同型號的計算機有著不同結構的匯編語言,而且,對于同一問題所編制的匯編語言程序在不同機型類別的計算機間是互不相通的。

  匯編語言中使用了助記符號,對于用匯編語言編制的程序,計算機不能像用機器語言編寫的程序一樣直接識別和執(zhí)行,必須經(jīng)過預先放人計算機的“匯編程序”的加工和翻譯才能變成能夠被計算機識別和處理的二進制代碼程序。用匯編語言等非機器語言書寫的符號程序稱為源程序,運行時匯編程序要將源程序翻譯成目標程序。目標程序是機器語言程序.它被安置在內存的預定位置上后,就能被計算機的CPU處理和執(zhí)行。

  匯編語言像機器指令一樣,是硬件操作的控制信息,因而仍然是面向機器的語言,使用起來還是比較繁瑣費時,通用性也差。但是,匯編語言用來編制系統(tǒng)軟件和過程控制軟件,其目標程序占用內存空間少,運行速度快,有著高級語言不可替代的用途。

  匯編語言指令能夠直接控制硬件,例如訪問I/O端口;而高級語言不提供對于硬件的控制。高級語言程序的效率取決于編譯器翻譯高級語言程序的方式,由于編譯器必須可以翻譯所有可能的高級語言代碼,因此在某些情況下編譯器翻譯出的機器語言可能不是最有效的機器語言。而匯編語言指令和機器語言指令是一一對應的,因此使用匯編語言可以確保代碼的高效性。編寫一個完整程序可能不能體現(xiàn)匯編語言高效率的優(yōu)勢。若僅編寫部分程序,在執(zhí)行時常??梢垣@取較高的效率。在多數(shù)情況下,匯編語言程序員編寫匯編語言程序不是為了實現(xiàn)一個完整的系統(tǒng)或者是一個程序,而僅僅是編寫選定的模塊。例如,可以通過寫出口例程(exit routine)用戶化應用程序或操作系統(tǒng)。為了保證與宿主語言程序能正常接口,常常需要用匯編語言編寫這樣的出口例程。

3.匯編語言的優(yōu)缺點[3]

  一、匯編語言的優(yōu)點

  匯編語言的語句與機器語言的指令是一一對應的,因此它具有機器語言的一些特點,其優(yōu)點如下。

  (1)易于理解與記憶。

  (2)能利用機器指令精確地描述算法,編程質量高。

  (3)所占存儲空間小。

  (4)執(zhí)行速度較快。

  二、匯編語言的缺點

  (1)與機器語言一樣,程序通用性差。每一種匯編語言都是為某種特定類型的計算機專門設計的,不同類型計算機的匯編語言不能通用。

  (2)匯編語言與機器語言一樣都依賴于機器,與計算機硬件直接相關,也是面向機器的語言。

4.匯編語言的應用[2]

  匯編語言作為最基本的編程語言之一,雖然它的應用范圍不算很廣,但重要性卻毋庸置疑,因為它能夠完成許多其他語言所無法完成的功能。例如Linux內核的絕大部分代碼是用C語言編寫的,但仍然不可避免地在某些關鍵地方使用了匯編代碼,其中主要是在Linux的啟動部分。由于這部分代碼與硬件的關系非常密切,即使是C語言也會有些力不從心,而匯編語言則能夠很好地揚長避短,最大限度地發(fā)揮硬件的性能。70%以上的系統(tǒng)軟件是用匯編語言編寫的。某些快速處理、位處理、訪問硬件設備等高效程序是用匯編語言編寫的。某些高級繪圖程序、視頻游戲程序也是用匯編語言編寫的。

  匯編語言是理解整個計算機系統(tǒng)的最佳起點和最有效途徑.人們經(jīng)常認為匯編語言的應用范圍很小,而忽視它的重要性。其實匯編語言對每一個希望學習計算機科學與技術的人來說都是非常重要的,是不能不學習的語言。所有可編程計算機都向人們提供機器指令,通過機器指令人們能夠使用機器的邏輯功能。所有程序,不論用何種語言編制,都必須轉成機器指令,運用機器的邏輯功能,其功能才能得以實現(xiàn)。機器的邏輯功能、軟件系統(tǒng)功能構筑其上,硬件系統(tǒng)功能運行于下。匯編語言直接描述機器指令,比機器指令容易記憶和理解。通過學習和使用匯編語言,能夠感知、體會、理解機器的邏輯功能,向上為理解各種軟件系統(tǒng)的原理打下技術理論基礎;向下為掌握硬件系統(tǒng)的原理打下實踐應用基礎。學習匯編語言向上可以理解軟件,向下能夠感知硬件,是理解整個計算機系統(tǒng)的最佳起點。

評論  |   0條評論