Лекции.Орг


Поиск:




Категории:

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

 

 

 

 


Механизм формирования физического адреса




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

Под физическим (линейным или полным) адресом понимается адрес памяти, выдаваемый на шину адреса микропроцессора.

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

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

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

ü для обращения к конкретному физическому адресу оперативной памяти необходимо определить адрес начала сегмента (сегментную составляющую) и смещение внутри сегмента.

Сегментная составляющая адреса (или база сегмента) представляет собой 16-битное значение, помещенное в один из сегментных регистров. Максимальное значение, которое при этом получается, соответствует 216 - 1. Таким образом получается, что адрес начала сегмента может быть только в диапазоне 0-64 Кбайт от начала оперативной памяти. На рис. 3.1. показано как происходит адресация остальной части оперативной памяти вплоть до 1 Мбайт. Сегментная часть извлекается из одного из сегментных регистров и сдвигается на четыре разряда влево. Получившееся 20-битное значение и является настоящим физическим адресом, соответствующим началу сегмента. Так как последние четыре разряда адреса сегмента всегда нули, данный адрес может указывать только на каждый 16-ый байт памяти. Поэтому память разбивается на 16-битовые блоки, называемые параграфами, а адрес сегмента счита

 
 

ется адресом некоторого параграфа.

Вторая компонента, участвующая в образовании физического адреса некоторого объекта в памяти, смещения представляет собой 16-битное значение. Значение смещения можно получить минимум из одного и максимум из трех источников: из значения смещения в самой машинной команде и (или) из содержимого одного базового и (или) одного индексного регистра. Количество источников, участвующих в формировании смещения, определяется кодированием конкретной машинной команды, и если таких источников несколько, то значения в них складываются. Например, если регистр сегмента данных содержит число 1234h, а базовый регистр BX – ABCDh, то получаем следующее значение физического адреса: 12340h + ABCDh = 1CF1Dh

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

Замечание. С сегментацией связаны понятия ближнего и дальнего адреса. При ближнем (Near), или внутрисегментном, обращении доступ к требуемой памяти осуществляется только указанием смещения, а адрес сегмента определяется текущим содержимым соответствующего регистра сегмента. При дальнем (Far), или межсегментном, обращении указывается полный адрес, содержащий 16-битное значение смещения (загружаемое в соответствующий сегментный регистр) и 16-битное смещение. Из-за пересылки большого количества байт адреса дальние обращения выполняются медленнее.





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


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


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

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

Слабые люди всю жизнь стараются быть не хуже других. Сильным во что бы то ни стало нужно стать лучше всех. © Борис Акунин
==> читать все изречения...

2240 - | 2159 -


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

Ген: 0.011 с.