.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

Confira também

Referência de diretivas
Gramática BNF do MASM