.MODEL (MASM de 32 bits)

Inicializa el modelo de memoria de programas. (Solo MASM de 32 bits).

Sintaxis

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

Parámetros

memory-model
Parámetro necesario que determina el tamaño de los punteros de código y de datos.

language-type
Parámetro opcional que establece las convenciones de llamada y nomenclatura para los procedimientos y los símbolos públicos.

stack-option
Parámetro opcional.

stack-option no se usa si el modelo de memoria es FLAT.

La especificación de NEARSTACK agrupa el segmento de pila en un único segmento físico (DGROUP) junto con los datos. Se supone que el registro del segmento de pila (SS) contiene la misma dirección que el registro del segmento de datos (DS). FARSTACK no agrupa la pila con DGROUP; por lo que SS no es igual a DS.

Comentarios

No se usa en .MODEL en MASM para x64 (ml64.exe).

En la tabla siguiente se enumeran los valores posibles para cada parámetro cuando tenga como destino plataformas de 16 y 32 bits:

Parámetro Valores de 32 bits Valores de 16 bits (compatibilidad con el desarrollo de 16 bits anterior)
memory-model FLAT TINY, SMALL, COMPACT, MEDIUM, LARGE, HUGE, FLAT
language-type C, STDCALL C, BASIC, FORTRAN, PASCAL, SYSCALL, STDCALL
stack-option No se usa NEARSTACK, FARSTACK

Código

Para obtener ejemplos relacionados con MASM, descargue los ejemplos del compilador de Ejemplos de Visual C++ y documentación relacionada de Visual Studio 2010.

En el siguiente ejemplo se muestra el uso de la directiva .MODEL.

Ejemplo

; 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

Consulte también

Referencia de directivas
Gramática BNF de MASM