Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
43
Добавлен:
13.02.2015
Размер:
681.98 Кб
Скачать
    1. Адресация машинных команд

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

В некоторых случаях длина слова может соответствовать разрядности энергонезависимой памяти.

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

Рассмотрим основные способы адресации в машинных командах.

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

2. Прямая адресация к памяти. Данный способ адресации указывает исполнительный адрес физической ячейки памяти, где расположены данные, над которыми производятся вычисления. Прямая адресация используется для характеристик как операнда источника, так и операнда приёмника. Физический адрес ячейки памяти, над данными которой выполняется действие, расположен в коде команды. Прямая адресация может использоваться как для двухадресных команд, так и для одноадресных.

3. Прямая регистровая адресация. При прямой регистровой адресации данные для вычислений располагаются во внутренних регистрах микропроцессора, а номер регистра указывается в коде команды. Прямая регистровая адресация используется как для двухадресных команд, так и для одноадресных. Команды регистровой адресации входят в группу команд укороченной адресации. Безадресные команды используют неявную регистровую адресацию для выполнения известного действия над регистром.

4. Косвенная регистровая адресация к памяти. При косвенной регистровой адресации данные для вычислений располагаются в произвольной ячейке памяти, адрес которой хранится во внутреннем регистре микропроцессора. В коде команды указывается номер регистра, в котором хранится адрес ячейки памяти, где расположены данные для вычислений. Косвенная регистровая адресация может использоваться как для двухадресных команд, так и для одноадресных. Команды косвенной регистровой адресации входят в группу команд укороченной адресации.

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

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

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

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

9. Автоинкрементная (автодекрементная) адресация к памяти. Аналогична косвенной регистровой адресации, за исключением того, что после выполнения автоинкрементной операции содержимое регистра увеличивается на единицу, а перед выполнением автодекрементной операции  уменьшается на единицу. Выполнение операции в цикле позволяет выполнить идентичные действия над массивом данных.

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

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

Таблица 5.1

Таблица сочетания способов адресации операндов к памяти

Адресация

приёмника

Адресация источника

Непосредственная

Прямая

Прямая регистровая

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

Индексная регистровая

Относительная

Прямая индексная

Относительная индексная

Автоинкрементная

(автодекрементная)

Поразрядная

Непосредственная

Прямая

+

+

+

+

+

Прямая регистровая

+

+

+

+

+

+

+

+

+

+

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

+

+

+

+

+

+

+

+

+

+

Индексная регистровая

+

+

+

+

+

+

+

+

Относительная

+

+

+

+

+

+

+

+

Прямая индексная

+

+

+

+

+

+

+

+

Относительная индексная

+

+

+

+

+

+

+

+

Автоинкрементная

(автодекрементная)

+

+

+

Поразрядная

+

+

+

+

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

Соседние файлы в папке Учебное_пособие_по_Схемотехнике