Поделиться через


.MODEL

Инициализирует модель памяти программы.

.MODEL memorymodel [[, langtype]] [[, stackoption]]

Параметры

  • memorymodel
    Обязательный параметр, который определяет размер указателей кода и данных.

  • langtype
    Необязательный параметр, который задает соглашения именования и вызова процедур и открытые символы.

  • stackoption
    Необязательный параметр.

    stackoptionis not used if memorymodel is FLAT.

    Указание NEARSTACK группирует сегмент стека в один физический сегмент (DGROUP) вместе с данными. Регистр сегмента стека (SS) предполагается, что содержат один и тот же адрес как сегментным регистром данных (DS). FARSTACKНе группировать стека с DGROUP; Таким образом SS не равен DS.

Заметки

.MODELне используется в MASM для x64 (ml64.exe).

В следующей таблице перечислены возможные значения для каждого параметра, когда выбор 16-разрядные и 32-разрядных платформ:

Параметр

32-разрядные значения

16-битовых значений (поддержка разработки предыдущих 16 бит)

memorymodel

FLAT

TINY, SMALL, COMPACT, MEDIUM, LARGE, HUGE, FLAT

langtype

C, STDCALL

C, BASIC, FORTRAN, PASCAL, SYSCALL, STDCALL

stackoption

Не используется

NEARSTACK, FARSTACK

Код

Образцы, связанные с MASM, загрузите образцы компилятора от Примеры Visual C++ и сопутствующую документацию для 2010 Visual Studio.

В следующем примере показано использование .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

См. также

Другие ресурсы

Справочник по директивам

Примеры Visual C++ и сопутствующую документацию для 2010 Visual Studio