Понятие способа адресации
Способ адресации – это правила записи в команде логического адреса и правила вычисления на его основе исполнительного адреса. Применение того или иного способа адресации во многом зависит от требований к размещению программы в основной памяти.
Специализированные ЭВМ имеют фиксированный набор программ. Размещение программ в основной памяти можно спланировать заранее. Основной целью кодирования адресов является сокращение длины команды.
Набор программ для ЭВМ общего назначения заранее не известен. Предварительно спланировать размещение программ в памяти невозможно. Кодирование адресов должно обеспечить размещение программы в любом месте памяти без внесения изменений в программу. Это свойство называют перемещаемостью программы. Другими словами, изменение результата вычисления АИ=F(АЛ) должно достигаться без изменения логического адреса.
Дадим краткое описание наиболее используемых способов адресации.
Прямая адресация.В команде указывается исполнительный адрес. Правило декодирования: АИ = АЛ. Время вычисления исполнительного адреса минимально. Перемещаемость программ не поддерживается. Длина логического адреса максимальна. Применяется для адресации данных в регистрах общего назначения
Косвенная адресация. В команде указывается адрес, по которому хранится исполнительный адрес. Правило декодирования: АИ = (АЛ). Поддерживается перемещаемость программ. При хранении исполнительного адреса в основной памяти длина логического адреса максимальна. Для получения исполнительного адреса необходимо дополнительное обращение в память. При хранении исполнительного адреса в регистре общего назначения сокращается длина логического адреса и время получения исполнительного адреса.
Относительная адресация
Относительная адресация в различных вариантах реализации является основной в ЭВМ общего значения и изначально ориентирована на поддержку перемещаемости программ. Суть относительной адресации показана на рисунке 5.
При составлении каждой программы отсчет логических адресов производится с нуля. При размещении программы в выделенной ей памяти для программы назначается база. База представляет собой исполнительный адрес начала выделенной области памяти.
При вычислении исполнительного адреса логический адрес рассматривается как смещение D от базы АИ = База + D.
Рис.5.
Изменение базы при неизменных логических адресах в командах позволяет “привязать” программу к любому месту основной памяти.
Обычно значение базы устанавливается при загрузке программы в основную память и хранится либо в специальном программно недоступном регистре или одном из регистров общего назначения.
Разновидностью относительной адресации является индексная адресация:
АИ = База + Индекс + D.
Значение индекса хранится в специальном регистре индекса или одном из регистров общего назначения. Индекс позволяет обрабатывать данные в последовательно расположенных ячейках памяти без изменения команды. Для изменения исполнительного адреса достаточно изменить значение индекса.
Непосредственная адресация
Операнд записывается непосредственно в команде на месте логического адреса. Декодирование логического адреса не требуется, так как Операнд=АЛ. Непосредственная адресация применяется для записи констант.
Дата добавления: 2019-02-08; просмотров: 669;