Partilhar via


.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

Referência de diretivas

Exemplos do Visual C++ e documentação relacionada para 2010 de Visual Studio