.MODEL(32 位 MASM)
初始化程序内存模型。 (仅限 32 位 MASM。)
语法
.MODEL 内存模型 ⟦, language-type⟧ ⟦, stack-option⟧
参数
memory-model
必需参数,确定代码和数据指针的大小。
language-type
可选参数,设置过程和公共符号的调用和命名约定。
stack-option
可选参数。
如果 memory-model 为 FLAT,则不使用 stack-option。
指定 NEARSTACK 将堆栈段以及数据组合成单个物理段 (DGROUP)。 假定堆栈段寄存器 (SS) 与数据段寄存器 (DS) 保留相同的地址。 FARSTACK 不使用 DGROUP 给堆栈分组;因此,SS 不等于 DS。
备注
.MODEL 不用于 MASM for x64 (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