. MODEL (MASM a 32 bit)
Inizializza il modello di memoria del programma. (solo MASM a 32 bit).
Sintassi
. MODEL memory-model ⟦, language-type⟧ ⟦, stack-option⟧
Parametri
memory-model
Parametro obbligatorio che determina le dimensioni dei puntatori di codice e di dati.
language-type
Parametro facoltativo che imposta le convenzioni di denominazione e chiamata per le procedure e i simboli pubblici.
opzione stack
Parametro facoltativo.
l'opzione stack non viene usata se il modello di memoria è FLAT.
Se si specifica NEARSTACK, il segmento dello stack viene raggruppato in un singolo segmento fisico (DGROUP) insieme ai dati. Si presuppone che il registro dei segmenti dello stack contenga lo stesso indirizzo del registro dei segmenti di dati. FARSTACK non raggruppa lo stack con DGROUP, pertanto SS non è uguale a DS.
Osservazioni:
. MODEL non viene usato in MASM per x64 (ml64.exe).MODEL is not used in MASM for x64 (ml64.exe).
La tabella seguente elenca i valori possibili per ogni parametro quando la destinazione è rappresentata da piattaforme a 16 bit e a 32 bit:
Parametro | Valori a 32 bit | Valori a 16 bit (supporto per lo sviluppo di versioni precedenti a 16 bit) |
---|---|---|
memory-model | APPARTAMENTO | TINY, SMALL, COMPACT, MEDIUM, LARGE, HUGE, FLAT |
language-type | C, STDCALL | C, BASIC, FORTRAN, PASCAL, SYSCALL, STDCALL |
opzione stack | Non usato | NEARSTACK, FARSTACK |
Codice
Per esempi relativi a MASM, scaricare gli esempi del compilatore da Esempi di Visual C++ e documentazione correlata per Visual Studio 2010.
Nell'esempio seguente viene illustrato l'uso della direttiva .MODEL
.
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