2-3 Способы адресации и форматы команд

реклама
Способы адресации и форматы команд
Адресация информации – это способ использования адресной части команды для
определения местонахождения информации в памяти ЭВМ. Следует отметить, что в
адресном пространстве процессора информация адресуется обычно с точностью до байта.
Важным вопросом построения любой системы команд является оптимальное
кодирование команд, что отражается на размере полей кода операции, на размере и
количестве полей адресной части, т.е. формате команд. Форматы команд в значительной
степени определяются методами адресации, количеством операндов, предполагаемым
объемом оперативной памяти (ОП), количеством регистров общего назначения (РОН), а
также сложностью аппаратуры, необходимой для декодирования. Поэтому в современных
RISC – процессорах, в отличии от CISC - процессоров
используются достаточно простые методы адресации, позволяющие резко упростить
декодирование команд.
Данные, которые обрабатываются командами, могут находиться в самой команде, в
регистрах процессора, в ячейках оперативной памяти. Надо помнить, что адресоваться
могут не только операнды, но и те места в памяти, куда они или результаты операции
будут записываться. При адресации ОП существуют понятия логического и физического
адреса. Логическим адресом оперирует программа, которая не привязана к определенным
адресам ОП и может располагаться в ее любом месте. Для чтения или записи данных на
основании данных о логическом адресе, должен быть сформирован физический или
исполнительный адрес, однозначно определяющий место ячейки в ОП.
Среди способов адресации можно выделить следующие:
- непосредственная адресация,
- прямая регистровая адресация,
- неявная адресация,
- прямая адресация,
- страничная адресация,
- относительная или базовая адресация,
- косвенная адресация,
- косвенная регистровая адресация,
- индексная адресация,
- индексно - относительная адресация,
Способы адресации
- непосредственная адресация, когда адресная часть команды используется
непосредственно для размещения операнда, как правило, какой-нибудь константы.
- прямая регистровая адресация, когда операнд находится в регистре, номер которого
указывается в адресной части команды. При программировании на ассемблере
используются буквенные обозначения регистров. Длина адресного поля зависит от
количества РОН.
- неявная адресация, когда местоположение операнда предопределено кодом операции.
Обычно операнд находится в специальном регистре процессора, например, в регистреаккумуляторе или в вершине стека.
- прямая адресация, когда в адресной части команды непосредственно указывают адрес
ячейки ОП. Основными недостатками прямой адресации является зависимость размера
адресного поля от емкости ОП и его большое значение, т.к. емкость ОП современных
ЭВМ измеряется мегабайтами. Поэтому прямая адресация обычно используется только
для фиксированной части ОП, т.е. с помощью прямого адреса фиксированной длины
можно адресовать часть ОП - т.н. страницу ОП.
- страничная адресация, когда физический адрес ячейки ОП формируется из двух
полей: номера страницы (старшие разряды адреса) и номера ячейки в странице (младшие
разряды адреса). Номер страницы определяется содержимым регистра, номер которого
указывается в адресном поле команды. Номер ячейки в пределах страницы указывается в
адресном поле команды. При таком способе разбиения ОП на страницы фиксированного
размера называемого сегментацией, не происходит пересечения страниц по физическим
адресам.
- относительная или базовая адресация, когда физический адрес получается
сложением базового адреса сегмента, сдвинутого влево на несколько разрядов со
смещением. Базовый адрес указывается в специальном регистре процессора - базовом
регистре. Смещение указывается в адресной части команды. Следует отметить, что
страничная адресация является частным случаем относительной (базовой) адресации, при
котором сдвиг влево базового адреса производится на число разрядов, равное числу
разрядов смещения. Основное назначение относительной адресации - обеспечить
перемещаемость программ и данных при динамическом распределении ОП в
мультипрограммном режиме работы компьютера.
- косвенная адресация, когда указывается не прямой, а косвенный адрес операнда, т.е.
адрес адреса операнда, называемый указателем. По косвенному адресу, находящемуся в
адресной части команды, производится первое обращение к ОП и извлекается адрес
операнда, а затем уже по этому адресу производится второе обращение и извлекается
операнд. Недостаток косвенной адресации – дополнительное обращение к памяти и, как
следствие, уменьшение быстродействия процессора.
- косвенная регистровая адресация, когда указатель адреса операнда хранится не в
ОП, а в регистре процессора, номер который указывается в адресной части команды.
Поскольку время обращения к регистрам процессора обычно в 5…10 раз меньше, чем к
ячейкам ОП, то время выборки операнда увеличивается незначительно – на 10…20%.
Достоинствами косвенной адресации являются возможность обработки адреса операнда,
уменьшение длины адресной части команды при косвенной регистровой адресации, т. к.
адрес регистра значительно короче адреса ячейки памяти.
- индексная адресация, когда физический адрес ячейки ОП формируется сложением
базового адреса, указанного в адресной части команды или в базовом регистре и
смещения, находящегося в специальном регистре процессора, который называетя
индексным. Достоинством индексной адресации является возможность модификации
исполнительного адреса путём выполнения операций с индексными регистрами. Этот
метод адресации эффективен при работе с массивами данных.
- индексно - относительная адресация, когда совместно используются индексная и
относительная адресации. При индексно - относительной адресации физический адрес
ячейки памяти формируется как сумма трех величин. Базовый адрес получается, как и в
случае относительной адресации, т.е. сдвигом содержимого базового регистра, номер
которого указан в адресной части команды и сложением его со смещением,
расположенным в адресной части команды или регистре, номер которого указан в
адресной части. Затем полученный адрес складывается с содержимам индексного
регистра, номер которого указан в адресной части команды.
Скачать