高階組合語言
高階組合語言(英語: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).