Структура команд
Примеры безадресных команд без операнда:
· NOP
No operation, отсутствие операции.
· HALT
Остановка процессора.
Примеры безадресных команд с неявно указанными операндами:
· RETURN
Возврат из подпрограммы. Выталкивает из стека адрес возврата и помешает его в счетчик команд.
· SCS
Skip if Carry Set, пропустить следующую команду, если бит переноса в слове состояния установлен.
Примеры одноадресных команд с одним операндом:
· INC x
INCrement, добавить к операнду 1 и сохранить результат по тому же адресу.
Примеры одноадресных команд с неявным операндом:
· ADD x [, Acc]
Сложить операнд с аккумулятором и сохранить результат в аккумуляторе.
Примеры двух- и трехадресных команд:
· MOVE x, y
Присвоить значение объекта х объекту у.
· ADD x, y
Сложить х и у, поместить результат в у.
· ADD x, y, z
Сложить х и у и поместить результат в z.
Четырехадресная команда:
· DIV x, y, z, w
выполняет деление х на у, помещает частное в z, а остаток - в w.
Шестиадресная команда:
· INDEX b, l, h, s, i, a
вычисляет адрес элемента массива, расположенного по адресу b, с нижней и верхней границами индекса l и h соответственно и размером элемента s. Операнд i - индекс элемента, а - место, куда следует поместить вычисленный адрес.
Количество адресов иногда используют и для общей характеристики системы команд. Двухадресной называют систему команд, в которой команды имеют максимум два операнда, трехадресной - максимум три. Нередко вместо максимального количества операндов адресность системы команд определяют по количеству операндов у наиболее "ходовых" команд - сложения и вычитания.
Одноадресные системы команд обычно используют в качестве неявно заданного операнда выделенный регистр, так называемый аккумулятор, или стек. Такие архитектуры называют аккумуляторными и стековыми.
предыдущаяследующая