x86 彙編/HLA 語法
外觀
< X86 彙編
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 程式碼指令。通常,手動實現迴圈速度更快。