.MODEL (MASM de 32 bits)
Inicializa o modelo de memória do programa. (Somente MASM de 32 bits.)
Sintaxe
. MODELO modelo de memória ⟦, tipo de linguagem⟧ ⟦, opção de pilha⟧
Parâmetros
memory-model
Parâmetro obrigatório que determina o tamanho dos pontos de dados e código.
language-type
Parâmetro opcional que define as convenções de nomenclatura e chamadas para procedimentos e símbolos públicos.
stack-option
Parâmetro opcional.
stack-option não será usado se memory-model for FLAT.
Especificar NEARSTACK agrupa o segmento de pilha em um único segmento físico (DGROUP) junto com os dados. O registro do segmento de pilhas (SS) deve ter o mesmo endereço que o registro do segmento de dados (DS). O FARSTACK não agrupa a pilha com DGROUP. Portanto, SS não é igual a DS.
Comentários
O .MODEL não é usado em MASM para x64 (ml64.exe).
A tabela a seguir lista os possíveis valores para cada parâmetro ao direcionar plataformas de 16 bits e 32 bits:
Parâmetro | Valores de 32 bits | Valores de 16 bits (suporte para o desenvolvimento 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 | Não usado | NEARSTACK, FARSTACK |
Código
Para obter amostras relacionadas a MASM, baixe as amostras de Compilador em Amostras do Visual C++ e documentação relacionada para o Visual Studio 2010.
O exemplo a seguir demonstra o uso da diretiva .MODEL
.
Exemplo
; 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