.MODEL
プログラムのメモリ モデルを初期化します。
.MODEL memorymodel [[, langtype]] [[, stackoption]]
パラメーター
memorymodel
コードとデータのポインターのサイズを指定する必須のパラメーターです。langtype
プロシージャおよびパブリック シンボルの呼び出しと名前付け規則を設定するオプションのパラメーター。stackoption
省略可能なパラメーターです。stackoptionis not used if memorymodel is FLAT.
指定NEARSTACK 、スタック セグメントは、1 つの物理セグメントにグループ化 (DGROUP) データと共に。スタック セグメント レジスタ (SS) と同じアドレスにデータ セグメント レジスタを保持する前提としています (DS)。FARSTACKスタックではグループ化されませんDGROUP。 したがってSS等しくないDS。
解説
.MODEL使用されないx64 用 MASM (ml64.exe)。
次の表は、16 ビットおよび 32 ビット プラットフォームを対象とすると各パラメーターの値を示します。
パラメーター |
32 ビットの値 |
16 ビットの値 (以前の 16 ビット開発のサポート) |
---|---|---|
memorymodel |
FLAT |
TINY, SMALL, COMPACT, MEDIUM, LARGE, HUGE, FLAT |
langtype |
C, STDCALL |
C, BASIC, FORTRAN, PASCAL, SYSCALL, STDCALL |
stackoption |
未使用 |
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