. MODELL (32-Bit-MASM)
Initialisiert das Programmspeichermodell. (Nur 32-Bit-MASM.)
Syntax
. MODEL Speichermodell ⟦, Sprachtyp⟧ ⟦, Stack-Option⟧
Parameter
Speichermodell
Erforderlicher Parameter, der die Größe von Code- und Datenzeigern bestimmt.
Sprachtyp
Optionaler Parameter, der die Aufruf- und Namenskonventionen für Prozeduren und öffentliche Symbole festlegt.
Stack-Option
Optionaler Parameter.
Stack-Option wird nicht verwendet, wenn das Speichermodell FLACH ist.
Durch Angeben von NEARSTACK wird das Stapelsegment zusammen mit Daten in einem einzelnen physischen Segment (DGROUP) gruppiert. Das Stapelsegmentregister (Stack Segment Register, SS) wird angenommen, um dieselbe Adresse wie das Datensegmentregister (DS) zu enthalten. FARSTACK gruppiert den Stapel nicht mit DGROUP. Daher ist SS nicht gleich DS.
Hinweise
. MODEL wird in MASM für x64 (ml64.exe) nicht verwendet.
In der folgenden Tabelle werden die möglichen Werte für die einzelnen Parameter auf 16-Bit- und 32-Bit-Plattformen aufgelistet:
Parameter | 32-Bit-Werte | 16-Bit-Werte (Support für frühere 16-Bit-Entwicklungen) |
---|---|---|
Speichermodell | FLACH | TINY, KLEIN, KOMPAKT, MITTEL, GROß, GROß, FLACH |
Sprachtyp | C, STDCALL | C, BASIC, FORTRAN, PASCAL, SYSCALL, STDCALL |
Stack-Option | Nicht verwendet | NEARSTACK, FARSTACK |
Code
Beispiele zu MASM finden Sie in den Compilerbeispielen, die Sie unter Visual C++ Samples and Related Documentation for Visual Studio 2010 (Visual C++-Beispiele und passende Dokumentation für Visual Studio 2010) herunterladen können.
Im folgenden Beispiel wird die Verwendung der .MODEL
-Anweisung gezeigt.
Beispiel
; 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