.USE16 / .USE32 〔LASM〕

構文    .USE16
    .USE32

セグメントの途中に .USE16 または .USE32 を記述して、生成されるコードのデフォルトのビットサイズを指定することができます。これらの文は、CPU のモードを実行時に切り替える場合に役立ちます。

.USE16 を指定すると、それ以降は 16 ビットモードのコードが生成されます。.USE32 を指定すると、それ以降は 32 ビットモードのコードが生成されます。.USE16 文と .USE32 文は、それぞれ SEGMENT 文の USE16 属性および USE32 属性に対応しています。

80286 以下の CPU は 32 ビットモード用のコードを実行できないため、.386 以上を指定せずに .USE32 を使用すると、警告が発生します。

USE16 属性のセグメントでは、CPU が 16 ビットモードで動作している場合に正しく実行されるコードが生成されます。USE32 属性のセグメントでは、CPU が 32 ビットモードで動作している場合に正しく実行されるコードが生成されます。.USE16 文または .USE32 文を指定すると、このセグメントの USE 属性を途中で切り替えることができます。

USE 属性を切り替えるとアセンブラが生成するコードが変わりますが、実際に CPU の実行モードが変化するわけではありません。CPU の実行モードを切り替えるには、そのためのコードを独自に記述する必要があります。

@UseSize を使用すると、現在のセグメントのビット モードを判定できます。

例    .use16
    mov    ax, [si]    ; 8B 04
    mov    eax, [esi]    ; 67|66|8B 06
    .use32
    mov    ax, [si]    ; 67|66|8B 04
    mov    eax, [esi]    ; 8B 06

参照 .USESTACK16/.USESTACK32

[目次]