起源和目標
HLA 最初被構想為在大學一級教授彙編語言編程的工具,其目標是在學習彙編語言時儘可能快地利用學生現有的編程知識來加快速度。 大多數參加彙編語言編程課程的學生已經被引入到IF,WHILE,FOR等高級控制流程結構中。HLA 允許學生在課程開始時立即將這些已經掌握的編程知識套用到彙編語言編碼中,從而使他們在學習如何編寫這些控制結構的低級形式之前,掌握彙編語言中的其他更有優先權的主題。蘭德爾海德的《彙編語言編程藝術》一書使用 HLA 來實現這一目的。
為何“高階”
HLA v2.x彙編程式支持與常規的低級彙編程式相同的低級機器指令。不同的是,Intel x86處理器系列上的高級彙編程式,如MASM(Microsoft Macro Assembler)或TASM(Turbo Assembler),也支持如IF、WHILE等流程控制指令,以及更好的數據聲明指令,如類似記錄、聯合甚至類的高級結構。
與大多數其他彙編工具不同,HLA 編譯器包含一個標準庫,其中包含數千個函式,過程和宏,可用於創建具有高級語言的完整應用程式。雖然彙編語言庫不是新的,但包含大型標準化庫的語言使程式設計師更有可能使用此類庫代碼,而不是簡單地編寫自己的庫函式。
HLA 支持所有與其他 x86 彙編程式相同的低級機器指令。而且,HLA 的高級控制結構是基於 MASM 和 TASM 中發現的那些,它們中的類高級程式語言的特徵要比 HLA 的出現早上幾年。在HLA 中,通過忽略高級程式語言的控制結構,低層彙編代碼可以像其他彙編程式一樣容易編寫。與像Pascal和C/C++這樣的高級語言不同,HLA 不需要內聯 asm 語句。在 HLA 中,類高級程式語言的特徵能夠通過平滑學習曲線為開始學習彙編語言的程式設計師提供學習幫助(假設他們在掌握低級指令集後將停止使用這些語句)。在實踐中,許多有經驗的程式設計師在掌握低級指令集後仍舊繼續在HLA、MASM 和類高級程式語言的語句,但這通常是為了提高可讀性。
使用 HLA 編寫高級程式也是可能的,這避免了大量低級彙編語言編程的繁瑣工作——這也是一些彙編語言程式設計師無視 HLA 的原因,因為它允許程式設計師這樣做。但是,支持高級和低級編程使得任何語言的適用範圍都有所擴大。如果一個人只做純低級語言的編碼工作,那是可能的。如果必須編寫更多可讀代碼,那么更高級別的語句則變得可以考慮了。
組合語言
組合語言即彙編語言,是一種用於電子計算機、微處理器、微控制器,或其他可程式器件的低級語言。在不同的設備中,彙編語言對應著不同的機器語言指令集。一種彙編語言專用於某種計算機系統結構,而不像許多高級語言,可以在不同系統平台之間移植。
使用彙編語言編寫的原始碼,然後通過相應的彙編程式將它們轉換成可執行的機器代碼。這一過程被稱為彙編過程。
彙編語言使用助記符(Mnemonics)來代替和表示特定低級機器語言的操作。特定的彙編目標指令集可能會包括特定的運算元。許多彙編程式可以識別代表地址和常量的標籤(Label)和符號(Symbols),這樣就可以用字元來代表運算元而無需採取寫死的方式。普遍地說,每一種特定的彙編語言和其特定的機器語言指令集是一一對應的。
許多彙編程式為程式開發、彙編控制、輔助調試提供了額外的支持機制。有的彙編語言編寫工具經常會提供宏,它們也被稱為宏彙編器。
現在彙編語言已不像其他大多數的程式設計語言一樣被廣泛用於程式設計,在今天的實際套用中,它通常被套用在底層硬體操作和高要求的程式最佳化的場合。驅動程式、嵌入式作業系統和實時運行程式都會需要彙編語言。