.MODEL
Inicializa o modelo de memória de programa.
.MODEL memorymodel [[, langtype]] [[, stackoption]]
Parâmetros
memorymodel
Parâmetro obrigatório que determina o tamanho dos ponteiros de código e dados.langtype
Parâmetro opcional que define as convenções de chamada e de nomes para procedimentos e símbolos públicos.stackoption
Parâmetro opcional.stackoptionis not used if memorymodel is FLAT.
Especificação de NEARSTACK agrupa o segmento de pilha em um único segmento físico (DGROUP) juntamente com os dados. O registrador de segmento de pilha (SS) será adotada para manter o mesmo endereço do registrador de segmento de dados (DS). FARSTACKnão agrupar a pilha com DGROUP; Assim, SS não é igual a DS.
Comentários
.MODELnão é usado em MASM para x64 (ml64.exe).
A tabela a seguir lista os possíveis valores para cada parâmetro durante o direcionamento para plataformas de 32 bits e 16 bits:
Parâmetro |
valores de 32 bits |
valores de 16 bits (suporte para desenvolvimento de 16 bits anterior) |
---|---|---|
memorymodel |
FLAT |
TINY, SMALL, COMPACT, MEDIUM, LARGE, HUGE, FLAT |
langtype |
C, STDCALL |
C, BASIC, FORTRAN, PASCAL, SYSCALL, STDCALL |
stackoption |
Não usado |
NEARSTACK, FARSTACK |
Código
Para exemplos relacionados MASM, baixe as amostras de compilador de exemplos do Visual C++ e documentação relacionada para 2010 de Visual Studio.
O exemplo a seguir demonstra o uso de .MODEL diretiva.
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
Consulte também
Outros recursos
Exemplos do Visual C++ e documentação relacionada para 2010 de Visual Studio