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