.MODEL
Inizializza il modello di memoria del programma.
.MODEL memorymodel [[, langtype]] [[, stackoption]]
Parametri
memorymodel
Parametro obbligatorio che determina la dimensione dei puntatori a codice e dati.langtype
Parametro facoltativo che consente di impostare le convenzioni di chiamata e di denominazione per le procedure e i simboli pubblici.stackoption
Parametro facoltativo.stackoptionis not used if memorymodel is FLAT.
Specifica di NEARSTACK il segmento dello stack vengono raggruppati in un unico segmento fisico (DGROUP) insieme ai dati. Lo stack di registri di segmento (SS) viene utilizzata per contenere lo stesso indirizzo di registro di segmento di dati (DS). FARSTACKnon raggruppare stack con DGROUP; In questo modo SS non è uguale a DS.
Note
.MODELnon è utilizzato in MASM per x64 (ml64.exe).
La tabella seguente vengono elencati i possibili valori per ogni parametro destinato a piattaforme a 16 bit e 32-bit:
Parametro |
valori a 32 bit |
valori a 16 bit (supporto per lo sviluppo di versioni precedente a 16 bit) |
---|---|---|
memorymodel |
FLAT |
TINY, SMALL, COMPACT, MEDIUM, LARGE, HUGE, FLAT |
langtype |
C, STDCALL |
C, BASIC, FORTRAN, PASCAL, SYSCALL, STDCALL |
stackoption |
Non utilizzato |
NEARSTACK, FARSTACK |
Codice
Per esempi di MASM correlati, scaricare gli esempi di compilatore da esempi di Visual C++ e la relativa documentazione per Visual Studio 2010.
Nell'esempio riportato di seguito viene illustrato l'utilizzo di .MODEL della direttiva.
Esempio
; 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
Vedere anche
Altre risorse
Esempi di Visual C++ e la relativa documentazione per Visual Studio 2010