Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Устройство ЭВМ и ее назначение.doc
Скачиваний:
2
Добавлен:
01.04.2025
Размер:
948 Кб
Скачать
☆

4.2. Система команд эвм общего назначения

4.2.1. Методы адресации

В машинах с регистрами общего назначения метод (или режим) адресации объектов, с которыми манипулирует команда, может задавать константу, регистр или ячейку памяти. Для обращения к ячейке памяти процессор прежде всего должен вычислить действительный или эффективный адрес памяти, который определяется заданным в команде методом адресации.

Система команд 32-разрядных процессоров предусматривает 11 режимов адреса­ции. При этом только в двух случаях операнды не связаны с памятью. Это операнд-содержимое регистра, которое берется из любого 8-, 16- или 32-битного регистра процессора, и непосредственный операнд (8, 16 или 32 бит), который содержится в самой команде. Остальные девять режимов так или иначе обращаются к памяти.

При обращении к памяти эффективный адрес вычисляется с использованием следующих компонентов.

• Смещение (Displacement или Disp) – 8-, 16- или 32-битное число, включенное в команду.

• База (Base) – содержимое базового регистра. Обычно используется для указа­ния на начало некоторого массива.

• Индекс (Index) – содержимое индексного регистра. Обычно используется для выбора элемента массива.

• Масштаб (Scale) – множитель (1, 2, 4 или 8), указанный в коде инструкции. Этот элемент используется для указания размера элемента массива, доступен только при 32-битной адресации.

Эффективный адрес вычисляется по формуле:

EA=Base + Index  Scale + Disp.

Отдельные слагаемые в этой формуле могут отсутствовать. Возможные режимы адресации приведены ниже:

Режим

Адрес

Прямая адресация

EA = Disp

Косвенная регистровая адресация

EA = Base

Базовая адресация

EA = Base + Disp

Индексная адресация

EA = Index + Disp

Масштабированная индексная адресация

EA = Scale  Index + Disp

Базово-индексная адресация

EA = Base + Index

Масштабированная базово-индексная адресация

EA = Base + Scale  Index

Базово-индексная адресация со смещением

EA = Base + Index + Disp

Масштабированная базово-индексная адресация со смещением

EA = Base + Scale  Index + Disp

Использование сложных методов адресации позволяет существенно сократить количество команд в программе, но при этом значительно увеличивается сложность аппаратуры. Важным вопросом построения любой системы команд является оптимальное кодирование команд. Оно определяется количеством регистров и применяемых методов адресации, а также сложностью аппаратуры, необходимой для декодирования. Именно поэтому в современных RISC архитектурах используются достаточно простые методы адресации, позволяющие резко упростить декодирование команд. Более сложные и редко встречающиеся в реальных программах методы адресации реализуются с помощью дополнительных команд, что приводит к увеличению размера программного кода. Однако такое увеличение длины программы с лихвой окупается возможностью простого увеличения тактовой частоты RISC-процессоров.