Assembler
@fardataФизический адрес сегмента данных типа far
@fardata?Физический адрес сегмента неинициализированных данных типа far
@cursegФизический адрес сегмента неинициализированных данных типа far
@stackФизический адрес сегмента стека
Если вы посмотрите на текст листинга 1, то увидите пример использования одного из этих идентификаторов. Это @data; с его помощью мы получили значение физического адреса сегмента данных нашей программы.
Теперь можно закончить обсуждение директивы MODEL. Операнды директивы MODEL используют для задания модели памяти, которая определяет набор сегментов программы, размеры сегментов данных и кода, способ связывания сегментов и сегментных регистров. В табл. 5 приведены некоторые значения параметра модель памяти директивы MODEL. Таблица 5. Модели памяти
МодельТип кодаТип данныхНазначение модели
TINYnearnearКод и данные объединены в одну группу с именем DGROUP.
Используется для создания программ формата .com.
SMALLnearnearКод занимает один сегмент, данные объединены в одну группу с именем DGROUP.
Эту модель обычно используют для большинства программ на ассемблере
MEDIUMfarnearКод занимает несколько сегментов, по одному на каждый объединяемый программный модуль.
Все ссылки на передачу управления - типа far.
Данные объединены в одной группе; все ссылки на них - типа near
COMPACTnearfarКод в одном сегменте;
ссылка на данные - типа far
LARGEfarfarКод в нескольких сегментах, по одному на каждый объединяемый программный модуль
Параметр модификатор директивы MODEL позволяет уточнить некоторые особенности использования выбранной модели памяти (табл. 6). Таблица 6. Модификаторы модели памяти
Значение модификатораНазначение
use16Сегменты выбранной модели используются как 16-битные (если соответствующей директивой указан процессор i80386 или i80486)
use32Сегменты выбранной модели используются как 32-битные (если соответствующей директивой указан процессор i80386 или i80486)
dosПрограмма будет работать в MS-DOS
Необязательные параметры язык и модификатор языка определяют некоторые особенности вызова процедур. Необходимость в использовании этих параметров появляется при написании и связывании программ на различных языках программирования.