Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по СиФО часть 5.1.doc
Скачиваний:
55
Добавлен:
15.09.2014
Размер:
771.07 Кб
Скачать

5.4.4. Косвенная относительная адресация

При данном способе адресации смещение Dопределяется формулой

D=А- <IP>,

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

А`исп = <IP> +D,Аисп = <А`исп>

и адресует не операнд в памяти, а адрес операнда. Таким образом, сумма А`испесть указатель адреса операнда (адрес адреса операнда).

Пример:

INR#500

При трансляции вычисляется смещение

D

var при перемещении программ

=A-<IP>=500-202 =

При исполнении команды

А=А`исп=202+298 =

Аисп=<500> =

Операнд = <600> = 2000

+1

Рис. 5.16

2001

5.4.5. Стековая адресация

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

Программная реализация осуществляется путем выделения в ОЗУ специальной области памяти, «адресация» в пределах которой осуществляется также с помощью SP. Однако в данном случае указатель стека реализуется в виде специального и в общем случае программно доступного регистра.

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

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

Существенным моментом для данного способа адресации является предва-

рительное уменьшение <SP> перед записью в стек. При разгрузке выполняются обратные действия. Вначале выполняется пересылка операнда, после чего содержимое <SP> наращивается.

5.5. Типовые форматы команд компьютерных систем

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

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

Итак, форматы команд проектируемых процессоров должны предусматривать обработку различных видов и форматов данных и, в частности: 1) двоичных и двоично-десятичных чисел; 2) чисел с фиксированной и плавающей запятой (ФЗ и ПЗ); 3) операндов фиксированной и переменной длины.

В зависимости от способа адресации данных длина команды может изменяться в достаточно широких пределах, например, 1,2,...,5 и т. д. байт.

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