ALIGN / EVEN

構文    ALIGN    <数値>
    EVEN
例    ALIGN    2
    ALIGN    4
    EVEN

ALIGN 文は<数値>でアラインを行います。現在のロケーションカウンタが指定の数値で割り切れない場合は、ロケーションカウンタが割り切れる値になるまで NOP 命令を挿入します。

EVEN は「ALIGN 2」と同等です。

一般に 8086 系の 16 ビットプロセッサでは、2 バイト以上のデータは 2 で割り切れるアドレス(ワード境界)に配置されていると高速なアクセスが可能です。32 ビットプロセッサではそれに加えて、4 バイト以上のデータは 4 で割り切れるアドレス(ダブルワード境界)に配置されていると高速なアクセスが可能です。このような特徴を生かすために、ALIGN 文を使用してデータのアラインを行うことができます。

メモ ALIGN 文は、アドレスに対してではなくセグメント先頭に対してアラインを行います。最終的に意味を持つのはアドレスに対するアラインなので、セグメントのアラインが ALIGN 文で指定する数値より小さい場合、ALIGN 文の指定は無意味になる可能性があります。

[目次]