0988b24c

Директива MODEL


Директива MODEL позволяет вам задать для программы несколько стандартных моделей сегментации. Вы можете также использовать ее для задания языка для процедур программы.

Директива MODEL имеет следующий синтаксис:

MODEL [модификатор_модели] модель_памяти [имя_сегмента_кода] [,[модификатор_языка] язык] [, модификатор_модели]

В режиме MASM используется тот же синтаксис, но директива имеет вид .MODEL.

"Модель_памяти" и "модификатор_модели" определяют модель сегментации памяти, используемую в программе.

В применяемых в Турбо Ассемблере стандартных моделях можно использовать специальные сегменты для:

- кода;

- инициализированных данных;

- неинициализированных данных;

- инициализированных данных дальнего типа;

- неинициализированных данных дальнего типа;

- констант;

- стека.

Сегмент кода содержит обычно код модуля (но при необходимос- ти может также содержать данные). В целях совместимости с языками высокого уровня инициализированные данные и константы интерпрети- руются по-разному. Они содержат такие данные, как сообщения, ког- да важно начальное значение. Неинициализированные данные и стек содержат данные, начальные значения которых не существенны. Ини- циализированные данные дальнего типа (far) - это неинициализиро- ванные данные, которые не являются частью стандартного сегмента данных, и которые доступны только при изменении значения сегмент- ного регистра. Это же относится к неинициализированным данным дальнего типа, только вместо инициализированных данных здесь со- держатся неинициализированные данные.

Специальные модели памяти задают, как можно ссылаться на эти сегменты с помощью сегментных регистров, и как они объединяются в группы (если это имеет место). При написании программы вы должны хранить эти сегменты отдельно, независимо от размера программы. Затем для объединения сегментов в группы вы можете выбрать соот- ветствующую модель. Если вы храните эти сегменты раздельно, и ва- ша программа увеличивается в размере, вы можете использовать большую модель.



Начало  Назад  Вперед