X86アセンブラ/HLA構文

出典: フリー教科書『ウィキブックス(Wikibooks)』

HLA構文[編集]

HLAは「High Level Assembler」の略称で、高水準言語の要素を持つアセンブラです。従来のアセンブリ言語よりも高水準で、より直感的な構文を提供します。これにより、プログラマはより高い抽象度でプログラムを記述できます。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コード命令に変換されます。通常、ループは手動で実装した方が速いことがあります。