.MODEL (32 位 MASM)

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

语法

.MODELmemory-model语言类型stack-option

参数

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

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

stack-option
可选参数。

如果内存模型为 FLAT ,则不使用stack-option。

指定 NEARSTACK 将堆栈段分组到 DGROUP (数据) 单个物理段。 假设 SS (堆栈) 与 DS 服务的数据段寄存器 (地址) 。 FARSTACK 不会将堆栈与 DGROUP 分组;因此 ,SS 不等于 DS

注解

.MODEL在 MASM 中不用于 x64 (ml64.exe) 。

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

参数 32 位值 16 位值(支持早期的 16 位开发)
memory-model TINY、SMALL、COMPACT、MEDIUM、LARGE、LARGE、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

另请参阅

指令参考
MASM BNF 语法