Udostępnij za pośrednictwem


. 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

Zobacz też

Dokumentacja dyrektyw
Gramatyka MASM BNF