Раздел 1. Введение в архитектуру ЭВМ.
Раздел 1. Введение в архитектуру ЭВМ.
Тема 1.2. Форматы команд и способы адресации ЭВМ.
3. Способы адресации ЭВМ.
Вопрос о том, каким образом в адресном поле команды может быть указано местоположение операндов, является главным при создании любой ЭВМ.
При рассмотрении различных способов адресации будем использовать следующие понятии:
- Исполнительный адрес операнда – двоичный код номера ячейки памяти, служащей источником или приемником операнда. Этот код подается на адресные входы ОП, и по нему происходит фактическое обращение к указанной ячейке.
- Адресный код команды – двоичный код в адресном поле команды, из которого необходимо сформировать исполнительный адрес операнда.
- Способ адресации – это метод формирования исполнительного адреса по адресному коду команды.
Часто различным способам адресации соответствуют различные коды операций. В некоторых случаях в команде может быть несколько таких полей. А может и вообще не быть адресной информации – неявная адресация.
Во всех типах современных ЭВМ используется байтовая организация памяти. Байт является минимальной адресуемой частью памяти. Каждый байт памяти имеет свой номер – адрес.
Кроме байта существуют и более крупные единицы информации:
- Слово – совокупность нескольких смежных байтов, общее число битов в которых равно разрядности ЭВМ.
- Поле – непрерывная по возрастающим значениям адресов последовательность байтов в ОП. За адрес поля принимается адрес крайнего левого байта поля. Использование поля той или иной длины определяется типом команды, адресующейся к этому полю.
- Параграф – совокупность 16 смежных байтов ОП. Адрес параграфа должен быть кратен 16. Только для x86-ой архитектуры.
- Страница – некоторая совокупность байтов. Величина ее зависит от класса ЭВМ.
- Сегмент – это область ОП, начинающаяся с границы параграфа и имеющая размер до 64Кбайт. Для архитектуры x86.
Наибольшее распространение получили следующие способы адресации:
- Непосредственная – операнд располагается непосредственно в адресном поле команды; используется при выполнении арифметических операций, операций сравнения и для загрузки команд в регистры;
- Прямая – в адресном поле команды указывается адрес операнда в памяти (либо номер регистра, содержащего операнд).
- Косвенная – код команды указывает адрес ячейки памяти, в которой находится не сам операнд, а его адрес, называемый указателем; для выборки операнда необходимо двукратное обращение к памяти: 1. извлечь адрес операнда; 2. извлечь сам операнд;
- Индексная – к формируемому исполнительному адресу прибавляется значение специального регистра – индекса.
Способы формирования адресов ячеек памяти можно разделить на:
· абсолютные – двоичный код адреса ячейки памяти может быть целиком извлечен либо из адресного поля команды, либо из какой-нибудь другой ячейки в случае косвенной адресации;
· относительные – двоичный код адресной ячейки памяти образуется из нескольких составляющих:
Б – код базы,
И – код индекса,
С – код смещения..
При относительной адресации применяется способ вычисления адреса путем суммирования кодов, составляющих адрес.
А = Б + И + С
А = Б + С
А = И + С
|