Упрощенная структура процессора с естественной адресацией команд приведена на рисунке 2.2.
Рисунок 2.2 - Упрощенная структура процессора с естественной адресацией команд
В таких процессорах в регистре команд (РК) отсутствует поле с адресом следующей команды. Вместо этого поля РК в процессор включается счетчик команд СчК (PC- Program Counter), указывающий на адрес текущей команды. СчК при инициации работы программы загружают начальным адресом, по которому выбирается первая команда. После выполнения очередной команды к содержимому СчК автоматически добавляется шаг адресации – обычно это число, равное длине выполняемой команды в байтах. По модифицированному адресу выбирается на выполнение следующая команда и т.д.
Предыдущая программа для этого типа процессора будет иметь вид (см. таблицу 2.2):
Таблица 2.2- Пример программы сложения 2-х чисел с использованием естественной адресации
№ яч.
КОП
Аоп
Комментарий
1300:
01
08 41
Вызов 1-го операнда из ОП в аккумулятор и переход к считыванию следующей команды из ячейки ОП с номером 1303H.
1303:
1А
08 42
Вызов 2-операнда, сложение его с 1- м операндом и переход к считыванию следующей команды из ячейки ОП с номером 1306H.
1306:
02
08 43
Запись вычисленного результата в ячейку ОП с адресом 0843H и переход к считыванию следующей команды.
1309:
00
00 00
Останов.
Нетрудно подсчитать, что длина последней программы составляет 12 байт. Уменьшение длины программы достигается благодаря отсутствию в командах поля с адресом следующей команды.
В процессорах с естественной адресацией длина программы и требуемый под неё объем памяти сокращаются, но система команд усложняется. Так, например, для организации ветвлений в программах требуются специальные команды - условных и безусловных переходов. Однако первое обстоятельство оказалось более весомым и традиционные машины выполняются по второму способу.
Способы адресации операндов
Под способом адресации понимается правило нахождения адреса операнда по информации, заданной в команде. В современных ЭВМ используется большое число способов адресации операндов. Рассмотрим наиболее часто используемые из них.
Прямая адресация
При прямой адресации адрес операнда указывается в адресной части команды. Поле адреса может быть одно, двух и трехадресным. Длина адресного поля nА должна быть такой, чтобы перекрывать все адресное пространство – nА=log2 M, где M-емкость памяти в байтах.
Рисунок 2.3 - Порядок выборки операнда при прямой адресации
Длина команд с прямой адресацией велика и может составлять несколько машинных слов. Если используется трёхадресная система команд (см. рисунок 2.4, то её длина составит nКОП + nA1 + nA2 + nР. При ёмкости ОП равной 4 Гбайт длина одного адресного поля составит 32 разряда, а длина команды соответственно будет состоять как минимум из 13 байтов.
КОП
А1
А2
Ap
nA1
nA2
np
Рисунок 2.4 - Формат трехадресной команды с использованием прямой адресации
Для выборки такой длинной команды из ОП потребуется несколько шинных циклов, поэтому для выполнения команд (чтение команды и исполнение действий, предписанных командой) требуется значительное время.
Регистровая адресация
Регистровая адресация является укороченной. В поле адреса команды указываются адреса ячеек сверхоперативной памяти (СОЗУ), в которых находятся операнды. СОЗУ является быстродействующей памятью, выполняемой на быстрых регистрах. Эти регистры являются частью процессора и называются регистрами общего назначения (РОН). Число РОН невелико. Регистровая адресация позволяет сократить длину команды и уменьшить время ее выполнения. Следующий рисунок поясняет порядок выборки операндов при использовании 2-х адресной команды.
Рисунок 2.5 - Порядок выборки операндов при регистровой адресации: R1- адрес 1-го операнда, R2- адрес второго операнда
Косвенная адресация
При косвенной адресации в адресной части команды указывается адрес ячейки памяти, в которой находится адрес операнда (косвенная адресация - это адресация адреса). Косвенный адрес обычно хранится во внутренней памяти процессора, состоящей из регистров общего назначения, разрядность которых должна быть достаточной для перекрытия адресного пространства памяти.
Рисунок 2.6 - Порядок выборки операнда при косвенной адресации
Команда с косвенной адресацией является укороченной, поэтому часто используется в микропроцессорах и микроконтроллерах, имеющих малую разрядность. Она позволяет при малой длине разрядной сетки перекрывать всё адресное пространство оперативной памяти.