.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