Assembly-programming-assembly-basic-syntax
アセンブリ-基本構文
アセンブリプログラムは3つのセクションに分けることができます-
- data セクション、
- bss セクション、および
- text セクション。
_data_セクション
データセクションを宣言するための構文は-
_bss_セクション
_text_セクション
テキストセクションを宣言するための構文は次のとおりです-
コメント
アセンブリ言語のコメントはセミコロン(;)で始まります。 空白を含む印刷可能な文字を含めることができます。 それは、次のようにそれ自体で行に表示することができます-
または、命令と同じ行で-のように
アセンブリ言語ステートメント
アセンブリ言語プログラムは、3種類のステートメントで構成されています-
- 実行可能な指示または指示、
- アセンブラーディレクティブまたは擬似操作
- マクロ
実行可能命令*または単に*命令*は、プロセッサに何をすべきかを伝えます。 各命令は、*操作コード(オペコード)で構成されています。 各実行可能命令は、1つの機械語命令を生成します。
アセンブラディレクティブ*または *pseudo-ops は、アセンブリプロセスのさまざまな側面についてアセンブラに通知します。 これらは実行可能ではなく、機械語命令を生成しません。
- マクロ*は、基本的にテキスト置換メカニズムです。
アセンブリ言語ステートメントの構文
アセンブリ言語ステートメントは、1行に1ステートメントずつ入力されます。 各ステートメントは次の形式に従います-
角括弧内のフィールドはオプションです。 基本的な命令には2つの部分があります。最初の部分は実行される命令(またはニーモニック)の名前で、2番目はコマンドのオペランドまたはパラメーターです。
以下は、典型的なアセンブリ言語ステートメントのいくつかの例です-
アセンブリのHello Worldプログラム
次のアセンブリ言語コードは、画面に文字列「Hello World」を表示します-
上記のコードをコンパイルして実行すると、次の結果が生成されます-
NASMでのアセンブリプログラムのコンパイルとリンク
PATH環境変数に nasm および ld バイナリのパスが設定されていることを確認してください。 さて、上記のプログラムをコンパイルおよびリンクするには、次の手順を実行します-
- テキストエディターを使用して上記のコードを入力し、hello.asmとして保存します。
- hello.asm を保存したディレクトリと同じディレクトリにいることを確認してください。
- プログラムをアセンブルするには、 nasm -f elf hello.asm と入力します
- エラーがある場合は、この段階でそれについてプロンプトが表示されます。 それ以外の場合、 hello.o という名前のプログラムのオブジェクトファイルが作成されます。
- オブジェクトファイルをリンクし、helloという名前の実行可能ファイルを作成するには、 ld -m elf_i386 -s -o hello hello.o と入力します。
- *。/hello *と入力してプログラムを実行します
すべてを正しく実行すると、「Hello、world!」と表示されます。画面上。