. MODEL (32-bitowy program MASM)
Inicjuje model pamięci programu. (tylko 32-bitowe rozwiązanie MASM).
Składnia
. Model pamięci modelu ⟦, typ języka⟧ ⟦, opcja stosu⟧
Parametry
model pamięci
Wymagany parametr określający rozmiar kodu i wskaźników danych.
typ języka
Opcjonalny parametr, który ustawia konwencje wywoływania i nazewnictwa dla procedur i symboli publicznych.
stack-option
Opcjonalny parametr.
opcja stack-option nie jest używana, jeśli model pamięci jest FLAT.
Określanie grup NEARSTACK segmentu stosu w jednym segmencie fizycznym (DGROUP) wraz z danymi. Zakłada się, że rejestr segmentu stosu (SS) przechowuje ten sam adres co rejestr segmentów danych (DS). PLATFORMA FARSTACK nie grupuje stosu z funkcją DGROUP, w związku z czym usługa SS nie jest równa DS.
Uwagi
. Model nie jest używany w rozwiązaniu MASM dla x64 (ml64.exe).
W poniższej tabeli wymieniono możliwe wartości dla każdego parametru w przypadku określania wartości docelowych dla platform 16-bitowych i 32-bitowych:
Parametr | Wartości 32-bitowe | 16-bitowe wartości (obsługa wcześniejszych 16-bitowych programowania) |
---|---|---|
model pamięci | PŁASKI | MAŁE, MAŁE, KOMPAKTOWE, ŚREDNIE, DUŻE, OGROMNE, PŁASKIE |
typ języka | C, STDCALL | C, BASIC, FORTRAN, PASCAL, SYSCALL, STDCALL |
stack-option | Nieużywane | NEARSTACK, FARSTACK |
Kod
W przypadku przykładów związanych z rozwiązaniem MASM pobierz przykłady kompilatora z przykładów visual C++ i powiązanej dokumentacji dla programu Visual Studio 2010.
W poniższym przykładzie pokazano użycie .MODEL
dyrektywy.
Przykład
; 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