задания модели памяти, которая определяет набор сегментов программы, размеры сегментов данных и кода, способ связывания сегментов и сегментных регистров. В табл. 5 приведены некоторые значения параметра модель памяти директивы MODEL. Таблица 5. Модели памяти
Модель | Тип кода | Тип данных | Назначение модели
TINY | near | near | Код и данные объединены в одну группу с именем DGROUP.
Используется для создания программ формата .com.
SMALL | near | near | Код занимает один сегмент, данные объединены в одну группу с именем DGROUP.
Эту модель обычно используют для большинства программ на ассемблере
MEDIUM | far | near | Код занимает несколько сегментов, по одному на каждый объединяемый программный модуль.
Все ссылки на передачу управления - типа far.
Данные объединены в одной группе; все ссылки на них - типа near
COMPACT | near | far | Код в одном сегменте;
ссылка на данные - типа far
LARGE | far | far | Код в нескольких сегментах, по одному на каждый объединяемый программный модуль
Параметр модификатор директивы MODEL позволяет уточнить некоторые особенности использования выбранной модели памяти (табл. 6). Таблица 6. Модификаторы модели памяти
Значение модификатора | Назначение
use16 | Сегменты выбранной модели используются как 16-битные (если соответствующей директивой указан процессор i80386 или i80486)
use32 | Сегменты выбранной модели используются как 32-битные (если соответствующей директивой указан процессор i80386 или i80486)
dos | Программа будет работать в MS-DOS
Необязательные параметры язык и модификатор языка определяют некоторые особенности вызова процедур. Необходимость в использовании этих параметров появляется при написании и связывании программ на различных языках программирования.
Описанные нами стандартные и упрощенные директивы сегментации не исключают друг друга. Стандартные директивы используются, когда программист желает получить полный контроль над размещением сегментов в памяти и их комбинированием с сегментами других модулей. Упрощенные директивы целесообразно использовать для простых программ и программ, предназначенных для связывания с программными модулями, написанными на языках высокого уровня. Это позволяет компоновщику эффективно связывать модули разных языков за счет стандартизации связей и управления.