高階組合語言
高階組合語言(英語:High Level Assembler)是一種由Randall Hyde 發明的組合語言,它允許使用更高級的語言結構(類似高階語言的語法)來幫助初學者和資深匯編語言開發者。 它完全支持高級數據類型和面向對象編程。 它使用鬆散的基於幾種高級編程語言(HLL)的語法,如Pascal、Ada、Modula-2 和 C++,以允許創建可讀的匯編語言程序,並允許 HLL 程序員儘可能快地學習自身。
開發者 | Randall Hyde |
---|---|
當前版本 | 2.16(2011年7月6日 | )
操作系統 | Windows, Linux, FreeBSD, Mac OS X |
類型 | 匯編器 |
網站 | webster.cs.ucr.edu |
起源和目標
HLA 最初被設想為在大學一級教授匯編語言編程的工具,其目標是在學習匯編語言時儘可能快地利用學生現有的編程知識來加快速度。 大多數參加匯編語言編程課程的學生已經被引入到IF,WHILE,FOR等高級控制流程結構中。HLA 允許學生在課程開始時立即將這些已經掌握的編程知識應用到匯編語言編碼中,從而使他們在學習如何編寫這些控制結構的低級形式之前,掌握匯編語言中的其他更有優先級的主題。蘭德爾海德的《匯編語言編程藝術》一書使用 HLA 來實現這一目的。[1]
為何「高級」
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 的原因,因為它允許程序員這樣做。但是,支持高級和低級編程使得任何語言的適用範圍都有所擴大。如果一個人只做純低級語言的編碼工作,那是可能的。如果必須編寫更多可讀代碼,那麼更高級別的語句則變得可以考慮了。[2]
參考文獻
- ^ The Art of Assembly Language Programming. [2018-03-29]. (原始內容存檔於2018-03-29).
- ^ General Information of High Level Assembler for z/OS & z/VM & z/VSE (PDF).