Студопедия

Мы поможем в написании ваших работ!




Сегментация памяти и вычисление адресов

 

Пространство памяти емкостью 1 Мб представляется как набор сегментов, определяемых программным путем. Сегмент состоит из смежных ячеек памяти и является независимой и отдельно адресуемой областью памяти емкостью 64 Кб. Каждому сегменту программой назначается начальный (базовый) адрес, являющийся адресов первого байта сегмента в пространстве памяти. Начальные адреса важнейших 4-х сегментов, в данный момент времени выбранных в качестве текущих, записываются в сегментные регистры CS (кодовый), SS (стека), DS (данных), ES (дополнительный сегмент данных).
В сегментном регистре хранится 16 старших битов 20-разрядного начального адреса сегмента. Четыре младших бита начального адреса сегмента по умолчанию равны нулю и дописываются к содержимому сегментного регистра при вычислении физических адресов ячеек памяти. Поэтому начальный адрес сегментов всегда начинается с параграфа, т.е. кратен 16. Других ограничений на размещение сегментов в памяти нет, поэтому сегменты могут быть соседними (смежными), не перекрывающимися, частично или полностью перекрывающимися.
Сегментные регистры обычно инициализируются в начале программы путем записи в них соответствующих констант. Частный случай загрузки всех сегментных регистров нулями приводит к организации памяти, характерной для МП КР580ВМ80А.
Логический адрес ячейки памяти состоит из двух 16-битовых беззнаковых значений: начального адреса сегмента (база или сегмент) и внутрисегментное смещение, которое определяет расстояние от начала сегмента до этой ячейки памяти.
Физический адрес ячейки памяти - это 20-битовое число в диапазоне 0..FFFFFh, которое однозначно определяет положение каждого байта в пространстве памяти. Для вычисления физического адреса база сегмента сдвигается влево на 4 бита и суммируется со смещением (рис.2).

 

Рис.2. Преобразование логического адреса ячейки памяти в физический адрес.

 

Источники логического адреса, как видно из рис.2, для различных типов обращения к памяти могут быть различными. Команды всегда выбираются из текущего сегмента кода в соответствии с логическим адресом CS:IP. Стековые команды всегда обращаются к текущему сегменту стека по адресу SS:SP. Если при вычислении эффективного адреса ЕА используется регистр ВР, то обращение также производится к стековому сегменту. Операнды, как правило, размещаются в текущем сегменте данных по адресу DS:ЕА.
Сегментная структура памяти обеспечивает возможность создания позиционно-независимых или динамически перемещаемых программ, что необходимо в мультипрограммной среде для эффективного использования оперативной памяти.

 

43. Система прерываний микропроцессора К1810ВМ86


<== предыдущая страница | следующая страница ==>
Адресное пространство памяти и ввода-вывода | Организация прерываний в микропроцессоре К1810ВМ86

Дата добавления: 2015-06-30; просмотров: 246; Нарушение авторских прав




Мы поможем в написании ваших работ!
lektsiopedia.org - Лекциопедия - 2013 год. | Страница сгенерирована за: 0.048 сек.