Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Имя ends




Атрибут выравнивания сегмента (тип выравнивания) сообщает компоновщику (редактору связей) о том, что нужно обеспечить размещение начала сегмента на заданной границе. Это важно, поскольку в зависимости от выравнивания доступ к оперативной памяти выполняется с разной скоростью.

Допустимые значения этого атрибута следующие:

- byte – выравнивание не выполняется; сегмент может начинаться с любого адреса памяти

- word – сегмент начинается по адресу, кратному двум; выравнивание на границу слова

- dword – сегмент начинается по адресу, кратному четырем; выравнивание на границу дв. слова

- para – сегмент начинается по адресу, кратному 16; выравнивание на границу параграфа (16 б)

- page – сегмент начинается по адресу, кратному 256; выравнивание на границу страницы (256 б)

- mempage – сегмент начинается по адресу, кратному 4 Кб; выравнивание на границу страницы памяти (4 Кб).

Атрибут комбинирования сегментов сообщает редактору связей о том, как нужно объединять сегменты, имеющие одно и то же имя. Сегменты с различными именами объединять нельзя. Значениями атрибута комбинирования могут быть:

- private – сегмент не будет объединяться с другими сегментами

- public – заставляет компоновщик соединить все сегменты с одинаковыми именами. Новый объединенный сегмент будет целым и непрерывным.

- common – располагает все сегменты с одним и тем же именем по одному адресу. Все сегменты с данным именем будут перекрываться и совместно использовать память. Размер полученной в результате области загрузки будет равен размеру самого большого сегмента

- at xxxx – располагает сегмент по абсолютному адресу параграфа, который задается выражением xxxx. Компоновщик располагает сегмент по заданному адресу памяти.

- stack – определение сегмента стека. Заставляет компоновщик соединить все одноименные сегменты и вычислять адреса в этих сегментах относительно регистра ss. Комбинированный тип stack (стек) аналогичен комбинированному типу public, за исключением того, что регистр ss является стандартным сегментным регистром для сегментов стека. Регистр sp устанавливается на конец объединенного сегмента стека.

Неявно атрибут комбинирования принимает значение private.

Атрибут класса сегмента (тип класса) – это заключенный в кавычки идентификатор (имя класса). Сегменты, для которых указано одно и то же имя класса, будут располагаться в памяти последовательно друг за другом.

Атрибут размера сегмента (режим адресации) может принимать следующие значения:

- use16 – для адресации информации внутри сегмента используется 16-разрядное смещение;

- use32 – при формировании адреса внутри сегмента используется 4 Гбайта (защищенный режим работы микропроцессора).

Тип микропроцессора задает следующая директива:

.тип_микропроцессора

.486; режим работы микропроцессора 80486

; 8086, 80186, 80286 - 16 битный режим адресации

; 80386 – 32 битный режим адресации

Все сегменты сами по себе равноправны, так как директивы segment и ends не содержат информации о функциональном назначении сегментов. Для того, чтобы использовать их как сегменты кода, данных или стека, необходимо предварительно сообщить транслятору об этом, для чего используют специальную директиву assume.

assume сегментный_регистр: имя_сегмента[,сегментный_регистр: имя_сегмента…]

Эта директива сообщает транслятору о том, какой сегмент к какому сегментному регистру привязан.

Последним оператором программы должна быть директива end. Она имеет такой формат:





Поделиться с друзьями:


Дата добавления: 2015-10-01; Мы поможем в написании ваших работ!; просмотров: 437 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Надо любить жизнь больше, чем смысл жизни. © Федор Достоевский
==> читать все изречения...

2300 - | 1987 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.007 с.