.MODEL (MASM de 32 bits)
Inicializa el modelo de memoria de programas. (Solo MASM de 32 bits).
Sintaxis
. MODEL memory-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