Лекции.Орг


Поиск:




Категории:

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

 

 

 

 


Формирование физического адреса в реальном режиме.




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

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

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

- Для обращения к конкретному физическому адресу оперативной памяти необходимо определить адрес начала сегмента и смещение внутри сегмента. Сегментная составляющая адреса представляет собой всего лишь 16-битное значение, помещенное в один из сегментных регистров. Адрес начала сегмента может быть только в диапазоне 0-64 Кбайт от начала оперативной памяти. Возникает вопрос о том, как адресовать остальную часть оперативной памяти вплоть до 1 Мбайта с учетом того, что размер самого сегмента не превышает 64 Кбайта. Дело в том, что в сегментном регистре содержатся только старшие 16 бит физического адреса начала сегмента. Недостающие младшие четыре бита 20-битного адреса получаются сдвигом значения в сегментном регистре влево на 4 разряда. Эта операция сдвига выполняется аппаратно и для программного обеспечения абсолютно прозрачна. Получившееся 20-битное значение и является настоящим физическим адресом, соответствующим началу сегмента. Что касается второго компонента, участвующего в образовании физического адреса некоторого объекта памяти, - смещения, - то оно представляет собой 16-битное значение. Это значение может содержаться явно в команде либо косвенно в одном из регистров общего назначения. В микропроцессоре эти две составляющие складываются на аппаратном уровне, в результате чего получается физический адрес памяти разрядностью 20 бит. Данный механизм образования физического адреса позволяет сделать программное обеспечение перемещаемым, то есть не зависящим от конкретных адресов загрузки его в оперативной памяти. Образование физического адреса представлено на рисунке 1.

Каждая программа в общем случае может состоять из любого количества сегментов, но непосредственный доступ она имеет только к трем основным: кода, данных и стека, - и от одного до трех дополнительных сегментов данных. Программа никогда не знает, по каким физическим адресам будут размещены ее сегменты. Этим занимается операционная система. Операционная система размещает сегменты программы в оперативной памяти по определенным физическим адресам, после чего помещает значения этих адресов в определенные места. Куда именно, зависит от режима работы микропроцессора. Так в реальном режиме эти адреса помещаются непосредственно в соответствующие сегментные регистры, а в защищенном режиме они размещаются в элементы специальной системной дескрипторной таблицы. Внутри сегмента программа обращается к адресам относительно начала сегмента линейно, то есть начиная с 0 и заканчивая адресом, или смещение, который микропроцессор использует для доступа к данным внутри сегмента, называется эффективным.

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

Количество источников, участвующих в формировании смещения, определяется кодированием конкретной машинной команды, и если таких источников несколько, то значения в них складываются. В заключение заметим, что не стоит волноваться насчет того, что существует несоответствие размеров шины адреса микропроцессора i486 или Pentium и 20-битного значения физического адреса реального режима. Пока микропроцессор находится в реальном режиме, старшие 12 линий шины адреса попросту недоступны, хотя при определенных условиях и существует возможность работы с первыми 64 Кбайт оперативной памяти, лежащим сразу после первого мегабайта.

Для определения физического

адреса команды используются регистры CS и IP, Рисунок 1 – Формирование физического адреса

для физического адреса операнда – DS и смещение, указанное в команде и для физического адреса ячейки стека – SS и SP.

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

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

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

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


Краткие теоретические сведения к лабораторной работы № 4.





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


Дата добавления: 2016-12-28; Мы поможем в написании ваших работ!; просмотров: 1059 | Нарушение авторских прав


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

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

Бутерброд по-студенчески - кусок черного хлеба, а на него кусок белого. © Неизвестно
==> читать все изречения...

2464 - | 2389 -


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

Ген: 0.007 с.