組合語言
組合語言(英語:assembly language:組合語言)是任何一種用於電腦、微處理器、微控制器,抑是其他會當用化器件的低階語言。佇無仝款的裝置內底,組合語言對應無仝的機器語言指令集。一種組合語言專用佇某種電腦系統結構,毋是真濟高階的語言,會當佇無仝系統平台之間徙栽。
使用組合語言編寫的原始碼,紲落通過相應的組譯程式共𪜶轉換做會當執行的機器碼。這一過程予人叫做是組譯過程。
組合語言來使用輔助記持碼(Mnemonics)來代替佮表示特定低階機器語言的操作。特定的組譯目標指令集可能會包括特定的運算元。誠濟組譯程式是通看代表位址佮常數的標籤(Label)佮符號(Symbols), 按呢就會當用字元來代表運算元而無需要採取寫死的方式。普遍咧講,每一種特定的組合語言佮其特定的機器語言指令集是一一對應的。
誠濟組譯程式為程式開發、組譯控制、輔助除毋著提供額外的支援機制。有的組合語言編寫工具定定會提供巨集,𪜶嘛予人號做巨組譯器。
這馬組合語言無成其他大多數的程式設計語言仝款被廣泛用於程式設計,佇今仔日的實際應用中,伊通常予人應用佇下底層硬體操作佮高要求的程式優化的場合。驅動程式、1875入式的作業系統佮實時運行程式內面攏會需要組譯語言。
工具
典型的現代組譯器(assembler)建造目的碼,由解譯組語指令集的易記碼(Mnemonics)到操作碼,閣解析符號名稱(Symbolic names)成做記持體位址佮其他的實體。用符號參考(symbolic references)是組譯器的一个重要特徵,伊會當省修改程式後人工轉址(manual address updates)欠缺的時計算。基本就是共機器碼變一寡字母爾,編譯的時才閣共輸入的指令字母替換做晦澀難捌的機器碼。
現狀
隨著現代軟體系統愈來愈濟大複雜,大量經過封裝的高階語言如 C / C + +,Pascal / Object Pascal 嘛應該愛揣時間來坐。遮的新的語言予程式的設計師佇開發過程當中會當閣較簡單,閣較有效率,予軟體開發的人員著愛用應付快速的軟體開發的要求。毋過組合語言因為伊複雜性使得其適用領域每一步減小。但這並無意味著組譯已經無路用武之地。因為組譯閣較倚機器語言,會當直接對硬體來進行操作,生成的程式佮其他的語言相比較有較懸的執行速度,占用閣較細的記持體,所以一寡對時效性的要求誠懸的程式、真濟大型程式的核心模組佮工業控制方面大量應用。
所以,雖然有足濟程式語言會當供選擇,毋過組譯猶原是各大學電腦科學類專業學生的必修課,以予學生深入了解電腦的執行原理。
組譯風格
x 八十六 / amd 六十四組譯指令的兩大風格分別是 Intel 組譯佮 AT & T 組譯,分別予你 Microsoft Windows / Visual C + + 佮 GNU / Gas 採用(Gas 嘛會使用 Intel 組譯風格):
相關落去作
王爽的《組合語言》一書為組合語言的教程,已經予一寡大學當做教程使用。類似的教程猶閣包括《Windows 環境下三十二位元組合語言程式設計》等咧。
注釋
參考文獻
參閱
外部連結
- (英文)NASM 編譯器
- (英文)Linux Assembly
- (英文)MASM 三十二用 MASM 寫 Win 三十二程式的小型 SDK
- Assembly 組合教學