跳轉到內容

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 程式碼指令。通常,手動實現迴圈速度更快。

華夏公益教科書