Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






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




Для простых программ, содержащих по одному сегменту для кода, данных и стека можно упростить описание программы. Для этого в трансляторах MASM и TASM имеется возможность использования упрощенных директив сегментации. Эти директивы приведены в таблице 2.1.

Таблица. 2.1 Упрощенные директивы определения сегментов.

Формат директивы Назначение
Режим MASM Режим IDEAL
.CODE [имя] CODESEG [имя] Начало или продолжение сегмента кода.
.DATA DATASEG Начало или продолжение сегмента данных. Используется также для определения данных типа near.
.CONST CONST Начало или продолжение сегмента постоянных данных.
.DATA? UDATASEG Начало или продолжение сегмента неинициализированных данных. Используется также для определения данных типа near.
.STACK [размер] STACK [размер] Начало или продолжение сегмента стека. Параметр размер задает размер стека
.FARDATA [имя] FARDATA [имя] Начало или продолжение сегмента инициализированных данных типа far
FARDATA? [имя] UFARDATA [имя] Начало или продолжение сегмента неинициализированных данных типа far

В случае упрощенного оформления программы совместно с упрощенными директивами сегментации используется директива указания модели памяти MODEL, которая определяет набор сегментов программы, размеры сегментов данных и кода, способ связывания сегментов и сегментных регистров. Параметры директивы:

TINY - код, данные и стек содержаться в одном сегменте. Используется для com программ. Тип ссылок на код и данные – near.

SMALL - код занимает один сегмент, данные и стек объединены и занимают один сегмент. Используется для большинства программ на ассемблере. Тип ссылок на код и данные – near.

MEDIUM - неограниченный размер кода, под данные отводится один сегмент. Используется для написания больших программ с небольшим объемом данных. Тип ссылок на код – far, а данных – near.

COMPACT - размер кода ограничен одним сегментом, размер данных неограничен. Используется при написании малых и средних по размеру программ с большим количеством переменных. Тип ссылок на код – near, а данных – far.

LARGE - размер кода и данных неограничен. Используется в больших программах. Тип ссылок на код и данные – far.

При использовании директивы MODEL транслятор делает доступным несколько идентификаторов, к которым можно обращаться во время работы программы:

@code - физический адрес сегмента кода.

@data - физический адрес сегмента данных типа near.

@fardata - физический адрес сегмента данных типа far.

@fardata? - физический адрес сегмента неинициализированных данных типа far.

@curseg - физический адрес сегмента неинициализированных данных типа far.

@stack - физический адрес сегмента стека.






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных