Читайте также:
|
|
Как уже было показано в первом вопросе, для совместимости микропроцессоров К580 и К1810 все регистры последнего 16-разрядные. Однако для расширения объема памяти адресная шина имеет 20 разрядов (для сравнения у 8-разрядного МП ША только 16-рназрядная). Для формирования 20-разрядных адресов применяется специальная схема и более сложная система адресации, к рассмотрению которой мы переходим.
Для того чтобы легче было понять систему адресации, применяемую в МП К1810, будем считать, что любая ячейка памяти имеет два типа адресов: физический и логический.
Физический адрес представляется 20-разрядным двоичным числом и однозначно определяет любую из 1Мбайт ячеек памяти. С использованием шестнадцатиричной системы счисления адреса всех ячеек лежат в диапазоне от 00000 до FFFFF. Весь обмен информацией между МП и памятью осуществляется с использованием физических адресов.
В программах чаще используют логические адреса, которые позволяют обращаться к командам без знаний места, где эта команда будет размещена в памяти. Логический адрес состоит из двух составных частей: значения адреса сегмента и значения смещения в сегменте. Адрес сегмента и смещения выражаются 16-разрядными числами.
Как только устройство шинного интерфейса обращается к памяти, формируется физический адрес из логического по следующему правилу: значение адреса сегмента смещается на четыре разряда влево (слева приписывается четыре нуля), и полученное 20-разрядное число (с четырьмя нулями в младших четырех разрядах) складывается со значением смещения (рис.2)
Таким образом, адрес сегмента (с четырьмя нулями, добавленными в качестве младших разрядов) задает в памяти сегменты емкостью 64 Кбайт, а значение смещения в сегменте - расстояние от начала сегмента до искомого адреса памяти. Максимально возможное смещение в сегменте равно также 64 Кбайт.
В любой момент времени программа может осуществить доступ к одному из сегментных регистров: регистру сегментов программы (кодов) - CS, регистру сегмента данных - DS, регистру сегмента значения стека - SS. Содержание каждого из сегментных регистров может быть изменено за счет записи в них 16-разрядных значений чисел. Деление всего адресного пространства (памяти) на сегменты может производиться произвольно по усмотрению программиста, так что сегменты могут пересекаться в адресном пространстве.
В зависимости от команд устройство шинного интерфейса получает информацию о логическом адресе памяти из различных регистров МП. Коды команд всегда извлекаются из памяти по адресу, определяемому содержанием регистра CS и содержимым программного счетчика, где указывается смещение относительно начала текущего кодового сегмента.
Дата добавления: 2015-02-16; просмотров: 20 | Поможем написать вашу работу | Нарушение авторских прав |