Способы адресации операндов и команд

Чтобы осуществить фактическое обращение к ячейке запоминающего устройства, нужно подать двоичный код номера ячейки памяти на адресные входы запоминающего устройства. Этот код называется исполнительным адресом операнда. Например, для операнда, находящегося в регистре - это будет номер регистра

Исполнительным адресом операнда называется двоичный код номера ячейки памяти, служащий источником или приемником операнда.

Адресный код команды - это двоичный код в адресном поле команды, из которого необходимо сформировать исполнительный адрес операнда.

Способ формирования исполнительного адреса по адресному коду, носит название способ адресации.

Практически во всех существующих моделях процессоров предусмотрено несколько режимов адресации. Поэтому возникает вопрос, каким образом узел управления процессором узнает, какой именно режим адресации задан в конкретной машинной команде. Существует несколько методов решения этой задачи. Часто за определенным кодом операции «закрепляется» и определенный способ адресации. Альтернативный вариант предусматривает, что в формате команды выделяется несколько битов под поле режима адресации. Код в этом поле и определяет режим адресации при выполнении конкретной команды.

Наиболее известны:

Непосредственная адресация, когда в адресном поле команды вместо адреса содержится непосредственно сам операнд.

В таком случае не требуется дополнительного обращения к памяти для вызова операнда, недостаток - размер операнда ограничен длиной адресного поля команды. Достоинство - сокращение времени выполнения команды. Эта технология применяется для работы с целочисленными константами.

Прямая (абсолютная) адресация, адресный код прямо указывает номер ячейки памяти к которой производится обращение (исполнительный адрес).

Простота использования (требуется всего одно обращение к памяти для выборки операнда и не нужны дополнительные вычисления), но ограниченный размер адресного пространства и адрес не может быть изменен в процессе вычислений. Используется для доступа к глобальным переменным адреса которых известны во время компиляции.

Регистровая в адресном поле команды указывается регистр процессора.

Доступ к регистрам самый быстрый, а команда наиболее короткая. Многие компиляторы пытаются определить какая переменная чаще используется и поместить ее в регистр.

Косвенная адресация, в адресном поле указывается адрес ячейки (этот адрес называют указателем), содержащей полноразрядный адрес операнда.

Косвенный адрес можно изменять и проводить вычисления когда адреса операндов заранее не известны, а появляются лишь в процессе решения задачи. Недостаток – двухкратное обращение к памяти.

Косвенная регистровая адресация, при которой исполнительный адрес операнда хранится в регистре процессора.

Адресация со смещением предполагает формирование адреса в результате суммирования содержимого адресного поля команды с содержимым одного или нескольких регистров процессора (базовый адрес + смещение). Используется:

Базовая регистровая адресация предполагает получение исполнительного адреса операнда сложением содержимого базового регистра со смещением, содержащимся в адресном поле команды. (Базовый регистр может быть специальным, либо выделяться из РОН, тогда его номер указывается в подполе команды). Смещение имеет меньшую длину, чем адрес, что позволяет сократить длину команды.

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

Вопросы для самоконтроля

1. Что включает в себя архитектура системы команд процессора?

2. Какая часть команды обязательна для всех команд, а какая может отсутствовать?

3. Где могут находятся операнды машинных команд?

4. Как формат машинной команды оказывает влияние на быстродействие процессора?

5. Приведите пример арифметической команды с одним операндом?

6. Приведите пример команды передачи управления?

7. Какие способы адресации операндов обеспечивают наибольшее быстродействие?

8. Зачем нужна адресация со смещением?

9. Сколько раз процессор вынужден обращаться к памяти при использовании косвенной адресации?

10. Как в команде может указываться способ адресации операндов?

11. В чем преимущества фиксированной длины команды?

12. Какую систему команд называют ортогональной?

Вопросы для самостоятельной работы

1. Архитектура системы команд процессора 80386.

2. Архитектура системы команд процессора Motorola 6800.

3. Архитектура системы команд процессора ARM7.

Рекомендуемая литература: Хамахер К., Вранешич Э., Заки С. Организация ЭВМ. 5 изд., – СПб.: Питер, – 2003.

Гук М., Юров В. Процессоры Pentium 4, Athlon и Duron. – СПб.: Питер, 2001.

Литература

1. Столлингс В. Структурная организация и архитектура компьютерных систем. М.: ИД "Вильямс", 2002

Тема 4. Структура и основные логические блоки процессора
Лекция № 6 (2 ч)

Цель лекции: дать определение процессора как программно- управляемого устройства, показать, что функционирование процессора состоит в непрерывном выполнении цикла обработки команды, рассмотреть основные узлы процессора – АЛУ, регистры, УУ, определеить их назначение, виды и характеристики.

Изучаемые вопросы:

1. Функциональная структура процессора.

2. Арифметико-логическое устройство.

3. Организация набора регистров.

4. Функционирование устройства управления процессором.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: