
- •5. Архитектура компьютерных устройств
- •5.1. Понятие архитектуры
- •5.2. Выбор структуры и формата команды
- •5.3. Способы адресации операндов
- •5.3.1. Прямая адресация
- •5.3.2. Прямая регистровая адресация
- •5.3.3. Непосредственная адресация
- •5.3.4. Косвенная адресация
- •5.3.5. Косвенная регистровая адресация
- •5.3.6. Регистровая автоинкрементная адресация
- •5.3.7. Индексная адресация
- •5.3.8. Базовая адресация
- •5.3.9. Базово-индексная адресация
- •5.4. Адресация с использованием программного счетчика
- •5.4.1. Непосредственная адресация.
- •5.4.2. Абсолютная адресация
- •5.4.3. Относительная адресация
- •5.4.4. Косвенная относительная адресация
- •5.4.5. Стековая адресация
- •5.5. Типовые форматы команд компьютерных систем
- •5.5.1. Команды формата “регистр-регистр”(rr)
- •5.5.2.Команды формата “региcтр-индексируемая ячейка памяти” (rx)
- •5.5.3. Трёхадресные команды формата
- •5.5.4. Команды формата “память - непосредственный операнд” (si)
- •5.5.5. Команды формата “память - память” (ss)
- •5.6. Проектирование компьютерных устройств. Система команд.
- •5.6.1. Форматы команд персональных компьютеров
- •5.6.3. Двухадресные команды со смещением (1810вм86)
- •5.6.4. Двухадресные команды с непосредственным операндом
- •5.6.5. Одноадресные команды со смещением
- •5.6.6. Команды укороченного формата
- •5.7. Система команд компьютера
- •5.7.1. Выбор системы команд
- •5.7.2. Фазы выборки, дешифрации и выполнения команды
- •5.7.3. Команды арифметических операций
- •5.7.4. Команды передачи управления
- •5.7.5. Команды обращения к подпрограммам
5.4.4. Косвенная относительная адресация
При данном способе адресации смещение Dопределяется формулой
D=А- <IP>,
где А– значение адреса, взятое из мнемонической записи команды. В отличие от предыдущего способа исполнительный адрес при косвенной относительной адресации вычисляется как сумма:
А`исп = <IP> +D,Аисп = <А`исп>
и адресует не операнд в памяти, а адрес операнда. Таким образом, сумма А`испесть указатель адреса операнда (адрес адреса операнда).
Пример:
INR#500
При трансляции вычисляется смещение
D
var при
перемещении программ
При
исполнении команды
А=А`исп=202+298
=
Аисп=<500>
=
Операнд = <600> = 2000
+1
Рис. 5.16
5.4.5. Стековая адресация
Различают понятия аппаратный и программный стек. Аппаратный стек реализуется в виде группы регистров, «адресуемых» с помощью аппаратного указателя стека УС (SP). При этом указатель стека и регистры, как правило, объединяются в один блок, содержащий в общем случае две информационные шины и линии управления.
Программная реализация осуществляется путем выделения в ОЗУ специальной области памяти, «адресация» в пределах которой осуществляется также с помощью SP. Однако в данном случае указатель стека реализуется в виде специального и в общем случае программно доступного регистра.
SP автоматически при записи или считывании устанавливает в своих разрядах номер последней занятой ячейки - вершины стека. В связи с этим нет необходимости в указании адреса операнда непосредственно в записи команды. Однако если имеет место обмен данными между стеком и одним из регистров процессора, то в структуру команды также может включаться поле адреса операнда, используемого при пересылках.
Приведенная реализация показывает принципиальную возможность использования стека для выполнения операции изменения порядка следования элементов массива. При этом операнды записываются в стековую область с использованием известных команд пересылки. В режиме считывания используется нормальная (естественная) адресация через SP.
Существенным моментом для данного способа адресации является предва-
рительное уменьшение <SP> перед записью в стек. При разгрузке выполняются обратные действия. Вначале выполняется пересылка операнда, после чего содержимое <SP> наращивается.
5.5. Типовые форматы команд компьютерных систем
При проектировании компьютерных систем разработчик должен стремиться к сокращению общей длины команды, а также к уменьшению номенклатуры форматов применяемых команд. Однако в компьютерах общего назначения в процессе разработки архитектуры необходимо предусматривать возможность программирования различных научных, экономических и технических задач. В связи с этим на начальной стадии проектирования обычно используют широко известные и стандартные форматы и только в случае особой необходимости переходят к разработке новой структуры, предположительно повышающей эффективность вычислительных алгоритмов.
Рассмотрим наиболее известные форматы команд компьютеров, предположительно являющиеся базовыми для всех неймановских устройств.
Итак, форматы команд проектируемых процессоров должны предусматривать обработку различных видов и форматов данных и, в частности: 1) двоичных и двоично-десятичных чисел; 2) чисел с фиксированной и плавающей запятой (ФЗ и ПЗ); 3) операндов фиксированной и переменной длины.
В зависимости от способа адресации данных длина команды может изменяться в достаточно широких пределах, например, 1,2,...,5 и т. д. байт.
В общем случае различают пять основных форматов команд.