36
• одноадресные команды, оперирующие только одним операндом (напри -
мер, команды ОЧИСТИТЬ ЯЧЕЙКУ ПАМЯТИ , УВЕЛИЧИТЬ ЗНАЧЕНИЕ
ЯЧЕЙКИ НА ЕДИНИЦУ, ИЗМЕНЕНИТЬ ЗНАК ЧИСЛА и другие;
• двухадресные команды, для работы которых необходимо указание двух
адресов (например, команда КОПИРОВАТЬ СОДЕРЖИМОЕ ОДНОЙ ЯЧЕЙ-
КИ В ДРУГУЮ );
• трехадресные команды, например команда – СЛОЖИТЬ СОДЕРЖИ -
МОЕ ДВУХ ЯЧЕЕК И РЕЗУЛЬТАТ ПОМЕСТИТЬ ПО ТРЕТЬЕМУ АДРЕСУ ;
• четырехадресные, см . пример команды приведенной выше, но в которой
добавлено указание адреса команды , которая должна выполняться после
данной.
Для адресации каждого операнда в коде команды выделяется специаль-
ное поле (несколько разрядов). Очевидно , что количество указываемых в
команде операндов и способ указания их адресов существенным образом
влияют на длину команды (количество разрядов необходимых для кодирова-
ния команды ). В связи с этим во многих ЭВМ ограничиваются одноадрес-
ными и двухадресными командами. В этом случае, как, например, в команде
сложения, требующей указания адресов двух входных операндов и третьего
адреса для помещения результата операции, ограничиваются указанием
только двух адресов, помещая результат операции, т.е. операнд–приемник,
по адресу одного из двух входных операндов–источников . Естественно , что
при этом после выполнения операции значение одного из операндов будет
утеряно .
Учитывая, что адрес операнда занимает одно машинное слово, при непо -
средственном указании в команде адресов операндов, можно размещать ко -
манду в памяти ЭВМ в нескольких следующих подряд ячейках памяти . Од -
нако , проблема адресации операндов, т.е . способов указания их местонахож-
дения, на самом деле является более сложной, чем просто проблема увели -
чения длины команды . Обычно в ЭВМ используется не один, а несколько
способов формирования исполнительного адреса операнда по информации,
указываемой в соответствующем поле команды. Это связано , в частности , с
необходимостью обеспечения эффективного преобразования в машинные
коды программ, написанных на языках высокого уровня, с использованием
при программировании разнообразных способов структурной организации