. MODEL(32비트 MASM)

프로그램 메모리 모델을 초기화합니다. (32비트 MASM만 해당)

구문

. MODELmemory-model,language-type⟧ ⟦,stack-option

매개 변수

memory-model
코드 및 데이터 포인터의 크기를 결정하는 필수 매개 변수입니다.

language-type
프로시저 및 공용 기호에 대한 호출 및 명명 규칙을 설정하는 선택적 매개 변수입니다.

stack-option
선택적 매개 변수입니다.

stack-option은 memory-modelFLAT인 경우 사용되지 않습니다.

NEARSTACK을 지정하면 스택 세그먼트가 데이터와 함께 DGROUP(단일 물리적 세그먼트)으로 그룹화됩니다. SS(스택 세그먼트 레지스터)는 DS(데이터 세그먼트 레지스터)와 동일한 주소를 보유하는 것으로 간주됩니다. FARSTACK은 DGROUP을 사용하여 스택을 그룹화하지 않으므로 SS가 DS와 같지 않습니다.

설명

. MODEL은 x64(ml64.exe)용 MASM에서 사용되지 않습니다.

다음 표에는 16비트 및 32비트 플랫폼을 대상으로 할 때 각 매개 변수에 대해 가능한 값이 나열되어 있습니다.

매개 변수 32비트 값 16비트 값(이전 16비트 개발에 대한 지원)
memory-model 플랫 작은, 작은, 컴팩트, 중간, , 거 대 한, 평면
language-type C, STDCALL C, BASIC, FORTRAN, PASCAL, SYSCALL, STDCALL
stack-option 사용되지 않음 NEARSTACK, FARSTACK

코드

MASM 관련 샘플의 경우 Visual C++ 샘플 및 Visual Studio 2010용 관련 설명서에서 컴파일러 샘플을 다운로드합니다.

다음 예제에서는 .MODEL 지시문을 사용하는 방법을 보여줍니다.

예시

; 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

참고 항목

지시문 참조
MASM BNF 문법