- •В этих структурах обращение к портам по записи и чтению производится обычными командами обращения к памяти. При этом портам обычно приписываются адреса в старшем диапазоне.
- •Адресация многобайтовых объектов в оперативной памяти.
- •Адресация с использованием счетчика команд.
- •Способы адресации.
- •6) Укороченная адресация.
- •10) Автоинкрементная и автодекрементная адресации.
- •11) Индексация.
- •Нумерация полей памяти.
Адресация с использованием счетчика команд.
Адресация команд при их последовательной выборке осуществляется при помощи счетчика команд с постинкрементом. У процессоров с командами переменной длины величина постинкремента зависит от кода команды.
Некоторые процессоры позволяют использовать счетчик команд наравне со всеми остальными регистрами общего назначения. Запись в этот регистр приводит к передаче управления по адресу, который соответствует записанному значению. Чтение из этого регистра позволяет узнать адрес текущей команды.
Использование счетчика команд в косвенно-регистровом режиме со смещением позволяет адресовать код и данные относительно адреса текущей команды. Такой режим адресации называется относительным. Программный модуль, в котором используется только такая адресация, позиционно независим: его можно перемещать по памяти.
Во всех современных процессорах команды условного перехода используют именно такую адресацию: эти команды имеют короткое адресное поле, которое интерпретируется как знаковое смещение относительно текущей команды.
Основное применение условного перехода - это реализация условных операторов и циклов, в которых переход осуществляется в пределах одной процедуры, а зачастую всего на несколько команд вперед или назад. Снабжать такие команды длинным адресным полем было бы расточительно и привело бы к ненужному раздуванию кода. Условные переходы на большие расстояния в коде встречаются относительно редко
Способы адресации.
Адресный код - это информация об адресе операнда, содержащаяся в команде.
Исполнительный адрес - это номер ячейки памяти, к которой производится фактическое обращение.
В современных ЭВМ адресный код, как правило, не совпадает с исполнительным адресом.
Выбор способов адресации, формирования исполнительного адреса и преобразования адресов является одним из важнейших вопросов разработки ЭВМ. Рассмотрим способы адресации, используемые в современных ЭВМ :
1) Подразумеваемый операнд.
В команде может не содержаться явных указаний об операнде; в этом случае операнд подразумевается и фактически задается кодом операции команды.
2) Подразумеваемый адрес.
В команде может не содержаться явных указаний об адресе участвующего в операции операнда или адресе, по которому должен быть размещен результат операции, но этот адрес подразумевается.
3) Непосредственная адресация.
В команде содержится не адрес операнда, а непосредственно сам операнд. При непосредственной адресации не требуется обращения к памяти для выбора операнда и ячейки памяти для его хранения. Это способствует уменьшению времени выполнения программы и занимаемого ею объема памяти. Непосредственная адресация удобна для хранения различного рода констант.
4) Прямая адресация.
При прямой адресации обращение за операндом производится по адресному коду в поле команды. При этом исполнительный адрес совпадает с адресом кода команды.
5) Относительная (базовая) адресация.
При этом способе адресации исполнительный адрес определяется как сумма адресного кода команды и базового адреса, как правило хранящегося в специальном регистре - регистре базы .
Относительная адресация позволяет при меньшей длине адресного кода команды обеспечить доступ к любой ячейке памяти. Для этого число разрядов в базовом регистре выбирают таким, чтобы можно было адресовать любую ячейку оперативной памяти, а адресный код команды используют для представления лишь сравнительно короткого "смещения". Смещение определяет положение операнда относительно начала массива, задаваемого базовым адресом.