Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lektsia_21_03_13_1.docx
Скачиваний:
13
Добавлен:
21.02.2016
Размер:
92.54 Кб
Скачать

7.1. Сегментированная модель

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

Внутри сегмента программа обращается к адресам относительно начала сегмента линейно, то есть с 0 и заканчивается адресом, равным размеру сегмента. Адрес (смещение), который процессор использует для доступа к данным внутри сегмента, называется относительным. Для того, чтобы адресовать другой сегмент, необходимо всего лишь изменить адрес сегментного регистра.

Адрес сегмента хранится в одном из сегментных регистрах (ОСНОВНЫЕ - CS, DS, SS, дополнительные ES, FS, GS). Итак, для адресации используется два числа: адрес сегмента и смещение (рис. 5). Сегменты начинаются через 10h и перекрываются друг с другом.

Рис. 1. Принцип формирования адреса в реальном времени

7.2. Формирование абсолютного адреса в реальном режиме

Под абсолютным адресом понимается адрес памяти, выдаваемый на шину адреса процессора.

В реальном режиме механизм адресации физической памяти имеет следующие характеристики:

  • Диапазон изменения абсолютного адреса от 0 до 1 Мбайт. Эта величина определяется тем, что шина адреса i8086 имела 20 линий;

  • Максимальный размер сегмента 64 Кбайт. Это объясняется 16-разрядной архитектурой i8086. Нетрудно подсчитать, что максимальное значение, которое могут содержать 16-разрядные регистры, составляет , что применительно к памяти и определяет величину 64Кбайт;

  • Для обращения к конкретному абсолютному адресу оперативной памяти необходимо определить адрес начала сегмента (сегментную составляющую) и смещение внутри сегмента. Адрес начала сегмента может быть только в диапазоне 0 – 64 Кбайт от начала оперативной памяти.

Возникает вопрос о том, как адресовать остальную часть оперативной памяти вплоть до 1 Мбайт с учетом того, что размер самого сегмента не превышает 64 Кбайт.

Дело в том, что в сегментном регистре содержатся только 16 бит абсолютного адреса начала сегмента. Недостающие младшие четыре бита 20-битного адреса получаются сдвигом значения в сегментном регистре влево на 4 разряда. Эта операция сдвига выполняется аппаратно и для программного обеспечения абсолютно прозрачна. Получившееся 20-битное значение и является настоящим абсолютным адресом, соответствующим началу сегмента. Второй компонент, участвующего в образовании абсолютного адреса некоторого объекта в памяти – смещение-, то оно представляет 16-биное значение. Две составляющие складываются на аппаратном уровне, в результате получается абсолютный адрес памяти размерностью 20 бит.

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

Недостатки такой организации памяти:

  • Сегменты бесконтрольно размещаются с любого адреса, кратного 16;

  • Сегменты имеют максимальный размер 64 Кбайт;

  • Сегменты могут перекрываться с другими сегментами.

  • Желание избавится от указанных недостатков привели к появлению защищенного режима.

Пример: Пусть известно смещение ячейки 0435 в сегменте 0FE2. Найти абсолютный адрес данной ячейки.

Указание: использовать формулы формирования адреса в реальном времени. Ответ: 05332.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]