Читайте также:
|
|
В машинах с регистрами общего назначения метод (или режим) адресации объектов, с которыми манипулирует команда, может задавать константу, регистр или ячейку памяти. Для обращения к ячейке памяти процессор прежде всего должен вычислить действительный или эффективный адрес памяти, который определяется заданным в команде методом адресации.
Система команд 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.
Отдельные слагаемые в этой формуле могут отсутствовать. Возможные режимы адресации приведены ниже:
Использование сложных методов адресации позволяет существенно сократить количество команд в программе, но при этом значительно увеличивается сложность аппаратуры. Важным вопросом построения любой системы команд является оптимальное кодирование команд. Оно определяется количеством регистров и применяемых методов адресации, а также сложностью аппаратуры, необходимой для декодирования. Именно поэтому в современных RISC архитектурах используются достаточно простые методы адресации, позволяющие резко упростить декодирование команд. Более сложные и редко встречающиеся в реальных программах методы адресации реализуются с помощью дополнительных команд, что приводит к увеличению размера программного кода. Однако такое увеличение длины программы с лихвой окупается возможностью простого увеличения тактовой частоты RISC-процессоров.
Дата добавления: 2015-04-11; просмотров: 62 | Поможем написать вашу работу | Нарушение авторских прав |