匯編語言檢視原始碼討論檢視歷史
匯編語言(英語:assembly language)是任何一種用於電子計算機、微處理器、微控制器,或其他可編程器件的低級語言。在不同的設備中,匯編語言對應着不同的機器語言指令集。一種匯編語言專用於某種計算機系統結構,而不像許多高級語言,可以在不同系統平台之間移植。
使用匯編語言編寫的源代碼,然後通過相應的匯編程序將它們轉換成可執行的機器代碼。這一過程被稱為匯編過程。
匯編語言使用助記符(Mnemonics)來代替和表示特定低級機器語言的操作。特定的匯編目標指令集可能會包括特定的操作數。許多匯編程序可以識別代表地址和常量的標籤(Label)和符號(Symbols),這樣就可以用字符來代表操作數而無需採取寫死的方式。普遍地說,每一種特定的匯編語言和其特定的機器語言指令集是一一對應的[1]。
許多匯編程序為程序開發、匯編控制、輔助調試提供了額外的支持機制。有的匯編語言編寫工具經常會提供宏,它們也被稱為宏匯編器。
現在匯編語言已不像其他大多數的程序設計語言一樣被廣泛用於程序設計,在今天的實際應用中,它通常被應用在底層硬件操作和高要求的程序優化的場合。驅動程序、嵌入式操作系統和實時運行程序中都會需要匯編語言。
工具
典型的現代匯編器(assembler)建造目標代碼,由解譯組語指令集的助記符(Mnemonics)到操作碼,並解析符號名稱(Symbolic names)成為存儲器地址以及其它的實體。使用符號參考(symbolic references)是匯編器的一個重要特徵,它可以節省修改程序後人工轉址(manual address updates)的乏味耗時計算。基本就是把機器碼變成一些字母而已,編譯的時候再把輸入的指令字母替換成為晦澀難懂的機器碼。
現狀
隨着現代軟件系統越來越龐大複雜,大量經過了封裝的高級語言如C/C++,Pascal/Object Pascal也應運而生。這些新的語言使得程序員在開發過程中能夠更簡單,更有效率,使軟件開發人員得以應付快速的軟件開發的要求。而匯編語言由於其複雜性使得其適用領域逐步減小。但這並不意味着匯編已無用武之地[2]。由於匯編更接近機器語言,能夠直接對硬件進行操作,生成的程序與其他的語言相比具有更高的運行速度,占用更小的內存,因此在一些對於時效性要求很高的程序、許多大型程序的核心模塊以及工業控制方面大量應用。
此外,雖然有眾多編程語言可供選擇,但匯編依然是各大學計算機科學類專業學生的必修課,以讓學生深入了解計算機的運行原理。