Формат команды – это структура команды, позволяющая распознать назначение отдельных ее полей.
Исходя из определения, команда должна содержать информацию о выполняемой операции, адресах операндов и адресе ячейки ЗУ для записи результата.
Взаимозависимость формата команды и основных параметров ЭВМ
Важной характеристикой команды служит ее длина, которая складывается из длины поля кода операции и суммы длин адресных полей:
где n – количество адресных полей в команде.
Максимальное количество операций, которое может быть закодировано в поле кода операций длиной nкоп, составляет
Kmax = 2nКОп
Тогда по известному количеству команд ( K ), составляющих систему команд данной ЭВМ, можно определить необходимую длину поля операции:
nКОп >= log2K
Естественно, что эта величина должна быть минимально возможным целым числом. Так, для ЭВМ, имеющей систему команд из 100 команд, длина поля кода операции составит 7 бит.
Если поле адреса команды содержит просто номер ячейки ЗУ, к которой производится обращение, то длина этого поля определяется следующим образом:
nA >= log2VЗУ, где VЗУ – объем запоминающего устройства.
Правомерна и другая постановка задачи – определение максимального объема запоминающего устройства
( VЗУmax ), к которому можно обратиться при заданной длине поля адреса. В этом случае
VЗУmax=2nадр
Современные ЭВМ имеют, как правило, запоминающие устройства с минимальной адресуемой единицей 1 байт ( 1 байт = 8 бит ). Поэтому, например, адресация ЗУ объемом 1 мегабайт ( 1М байт = 220 байт ) требует 20 разрядов адресного поля, а поле адреса длиной 16 разрядов позволяет обращаться к памяти максимального объема 64 килобайта ( 1К байт = 210 байт ).
Одним из способов уменьшения длины поля адреса является введение в состав ЭВМ дополнительно специального блока памяти небольшого объема – регистровой памяти ( РП ). Это запоминающее устройство имеет высокое быстродействие и служит для хранения часто используемой информации: промежуточных результатов вычислений, счетчиков циклов, составляющих адреса при некоторых режимах адресации и т.д.. Так как объем РП невелик, адресация ее элементов требует относительно короткого адресного поля. Например, для регистровой памяти объемом 8 регистров требуется всего лишь трехразрядное адресное поле.
5. Системы кодирования команд. Структура одно-, двух-, трех-, четырехадресной ЭВМ. Естественный и принудительный порядок выполнения программы.
Система кодирования команд
Формат команды – это структура команды, позволяющая распознать назначение отдельных ее полей.
Исходя из определения, команда должна содержать информацию о выполняемой операции, адресах операндов и адресе ячейки ЗУ для записи результата.
Этому в наибольшей степени соответствует формат команды, содержащий поле кода операции и три адресных поля. Такая система кодирования команд называется трехадресной.
Схема выполнения трехадресной команды имеет вид:
(А1)*(А2)->А3
Здесь (А1) и (А2) – адреса ячеек ЗУ, в которых хранятся первый и второй операнды соответственно; * – знак обобщенной операции (например, сложение или умножение), задаваемой полем кода операции (КОп). Знак " -> " обозначает передачу результата операции в ячейку памяти с адресом А3.
Системы кодирования команд
Для выполнения операции сложения операндов, находящихся по адресам a и b, с записью результата в ячейку c ( c = a + b ) требуется одна команда такого формата:
КОп
А1
А2
А3
ADD
a
b
c
Формат двухадресной команды .
Выполнение операции с помощью такой команды проходит по следующей схеме:
(А1) * (А2) -> А1 или
(А1) * (А2) -> А2
Выполнение того же самого действия c = a + b в двухадресной системе кодирования команд потребует уже двух команд, например:
КОп
А1
А2
ADD
a
b
a = a + b
MOV
c
a
c = a
Одноадресная команда.
Обычно ЭВМ с одноадресной системой команд имеют особую структуру, в состав которой входит специальный регистр (регистр результата – РР ). Он служит для хранения результата операции и используется в качестве одного из операндов при выполнении операции
Схема выполнения операции на ЭВМ с одноадресной системой команд имеет вид:
(А) * (РР) -> А или
(А) * (РР) -> РР.
Операцию c = a + b в одноадресной системе команд можно выполнить следующим образом:
КОп
А1
MOVR
a
РР = a
ADD
b
РР = РР + b
MOVS
c
c = РР
Рассмотренные форматы команд используются при так называемом естественном порядке выполнения программы. При этом подразумевается, что после выполнения любой команды, не меняющей в явном виде порядок выполнения программы, очередная команда выбирается из ячейки ЗУ, располагающейся сразу же вслед за ячейкой (или ячейками), содержащей код текущей команды.
При четырехадресной системе кодирования команд первые три адреса выполняют те же функции, что и в трехадресной команде, а четвертый адрес указывает адрес ячейки, где хранится следующая выполняемая команда. Такая система обеспечивает принудительный порядок выполнения команд программы. Она хотя и повышает гибкость программирования, но практического применения не получила. Основной причиной этого является существенное увеличение размера каждой команды и, соответственно, увеличение объема ЗУ, необходимого для размещения программы, в то время как реальной потребности в такой кодировке каждой команды не существует.