Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Модели памяти



Модели памяти задаются директивой.MODEL.

model модель, язык, модификатор, где модель – одно из следующих слов:

TINY – код, данные и стек размещаются в одном и том же сегменте размером до 64 Кб. Эта модель памяти используется для написания программ на языке ассемблера в формате COM файла;

SMALL – код размещается в одном сегменте, а данные и стек – в другом (для их описания могут применяться разные сегменты, но объединенные в одну группу). Эта модель памяти используется для написания программ на языке ассемблера в формате EXE файла;

COMPACT – код размещается в одном сегменте, а для хранения данных могут использоваться несколько сегментов;

MEDIUM – код размещается в нескольких сегментах, а все данные – в одном;

LARGE, HUGE – и код, и данные могут занимать несколько сегментов;

FLAT – то же, что и TINY, но используются 32 – битные сегменты, так что максимальный размер сегмента, содержащего и данные, и код, и стек, - 4 Мб.

Язык – необязательный операнд, принимающий значения различных языков программирования, при указании которого подразумевается, что процедуры рассчитаны на вызов из программ на соответствующем языке программирования.

Модификатор – это необязательный операнд, принимающий значения NEARSTACK (по умолчанию) или FARSTACK. Во втором случае сегмент стека не будет объединяться в одну группу с сегментами данных.

Упрощенные директивы определения сегментов

Каждая программа, написанная на любом языке программирования, состоит из одного или нескольких сегментов. Область памяти, в которой находятся команды, называется сегментом кода, область памяти с данными – сегментом данных и область памяти, отведенная под стек – сегментом стека. Ассемблер позволяет помещать данные в сегмент кода, разносить код по нескольким сегментам, помещать стек в один сегмент с данными или вообще использовать один сегмент для всего. Для описания сегментов программы используются директивы SEGMENT и ENDS. Однако, чаще всего используются упрощенные директивы определения сегментов, которые вступают в силу после установления модели памяти.

Директива.CODE описывает сегмент кода:

.code.

Директива.STACK описывает сегмент стека:

.stack размер.

Директива.DATA описывает основной сегмент данных:

.data.






Дата публикования: 2014-11-18; Прочитано: 737 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...