跳转到内容

x86 汇编/HLA 语法

来自维基教科书,开放的书籍,为开放的世界

HLA 语法

[编辑 | 编辑源代码]

HLA 接受使用高级格式编写的汇编代码,并将其转换为另一种格式(通常为 MASM 或 GAS)。

例如,在 MASM 中,我们可以编写以下代码

mov EAX, 0x05

在 HLA 中,这段代码将变为

mov(0x05, EAX);

HLA 使用与 GAS 语法相同的运算顺序,但不需要任何 GAS 的名称修饰。此外,HLA 使用括号表示法来调用指令。HLA 使用分号来结束其行,类似于 C 或 Pascal。

高级结构

[编辑 | 编辑源代码]

有些人批评 HLA 因为它“不够底层”。这是错误的,因为 HLA 可以像 MASM 或 GAS 一样底层,但它也提供了一些高级抽象的选项。例如,HLA 可以使用以下语法将 eax 作为参数传递给 Function1 函数

push(eax);
call(Function1);

但 HLA 也允许程序员简化流程,如果他们愿意

Function1(eax);

这被称为函数调用的“括号表示法”。

HLA 还包含许多不同的循环(do-while、for、until 等)和控制结构(if-then-else、switch-case),程序员可以使用它们。但是,这些高级结构有一个缺点:使用它们可能很简单,但它们会被转换为 MASM 代码指令。通常,手动实现循环速度更快。

华夏公益教科书