.MODEL(32 位 MASM)

初始化程序内存模型。 (仅限 32 位 MASM。)

语法

.MODELmemory-model,language-type⟧ ⟦,stack-option

参数

memory-model
必需参数,确定代码和数据指针的大小。

language-type
可选参数,设置过程和公共符号的调用和命名约定。

stack-option
可选参数。

如果 memory-modelFLAT,则不使用 stack-option

指定 NEARSTACK 将堆栈段以及数据组合成单个物理段 (DGROUP)。 假定堆栈段寄存器 (SS) 与数据段寄存器 (DS) 保留相同的地址。 FARSTACK 不使用 DGROUP 给堆栈分组;因此,SS 不等于 DS

注解

.MODEL 不用于 MASM for x64 (ml64.exe)

下表列出了在面向 16 位和 32 位平台时每个参数的可能的值:

参数 32 位值 16 位值(支持早期的 16 位开发)
memory-model FLAT TINYSMALLCOMPACTMEDIUMLARGEHUGEFLAT
language-type CSTDCALL CBASICFORTRANPASCALSYSCALLSTDCALL
stack-option 未使用 NEARSTACKFARSTACK

代码

对于 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

另请参阅

指令参考
MASM BNF 语法