.MODEL (32 ビット MASM)
プログラム メモリ モデルを初期化します。 (32 ビット MASM のみ)。
構文
.MODEL memory-model ⟦, language-type⟧ ⟦, stack-option⟧
パラメーター
memory-model
コードとデータ ポインターのサイズを決定する必須パラメーターです。
language-type
プロシージャとパブリック シンボルの呼び出しと名前付けの規則を設定する省略可能なパラメーターです。
stack-option
省略可能な 型のパラメーターです。
memory-model が FLAT の場合、stack-option は使用されません。
NEARSTACK を指定すると、スタック セグメントがデータと共に 1 つの物理セグメント (DGROUP) にグループ化されます。 スタック セグメント レジスタ (SS) は、データ セグメント レジスタ (DS) と同じアドレスを保持すると想定されています。 FARSTACK では、スタックは DGROUP にグループ化されません。したがって、SS は DS と等しくありません。
解説
.MODEL は x64 用 MASM (ml64.exe) では使用されません。
次の表は、16 ビットおよび 32 ビットのプラットフォームを対象とする場合に各パラメーターで使用できる値を示しています。
パラメーター | 32 ビットの値 | 16 ビットの値 (以前の 16 ビット開発のサポート) |
---|---|---|
memory-model | FLAT | TINY, SMALL, COMPACT, MEDIUM, LARGE, HUGE, FLAT |
language-type | C, STDCALL | C, BASIC, FORTRAN, PASCAL, SYSCALL, STDCALL |
stack-option | 非使用 | NEARSTACK, FARSTACK |
コード
MASM 関連のサンプルについては、Visual Studio 2010 向けの Visual C++ サンプルと関連ドキュメントからコンパイラのサンプルをダウンロードしてください。
.MODEL
ディレクティブの使用例を次に示します。
例
; file simple.asm
; For x86 (32-bit), assemble with debug information:
; ml -c -Zi simple.asm
; For x64 (64-bit), assemble with debug information:
; ml64 -c -DX64 -Zi simple.asm
;
; In this sample, the 'X64' define excludes source not used
; when targeting the x64 architecture
ifndef X64
.686p
.XMM
.model flat, C
endif
.data
; user data
.code
; user code
fxn PROC public
xor eax, eax ; zero function return value
ret
fxn ENDP
end