Классы команд
1.Команды обработки данных, в том числе (О1 – первый операнд, О2 – второй). 1.1. Короткие операции (один такт). 1.1.1. Логические: • логическое сложение (для каждого бита О1 и О2 осуществляется операция ИЛИ); • логическое умножение (для каждого бита О1 и О2 осуществляется операция И); • инверсия (в О1 все единицы заменяются на нули, и наоборот); • сравнение логическое (если О1 =О2, то некий флаг или регистр устанавливается в «1», иначе в «0»); 1.1.2. Арифметические: • сложение операндов; • вычитание (сложение в обратном коде); • сравнение арифметическое (если О1>О2, или О1=О2, или О1<О2, то некий флаг или регистр устанавливается в 1, иначе – в О); 1.2. Длинные операции (несколько тактов): • сложение/вычитание с фиксированной точкой; • умножение/деление с фиксированной точкой. 2.Операции управления: • безусловный переход (ветвление, branch); • условный переход (по условию, результатам вычислений (conditional branch)). 3. Операции обращения к внешним устройствам (требование на запись или считывание информации). Естественно, могут существовать и другие операции – десятичная арифметика, обработка символьной информации, работа с числами половинной (полуслово – например, 16 бит) или двойной (двойное слово – например, 64 бит) длины. Кроме того, команды различаются по типу выборки и пересылок данных: 1) регистр–регистр (О1 и О2 размещаются в регистрах АЛУ); 2) память–регистр (регистр–память) – один из операндов размещается в ОП; 3) память–память (О1 и О2 размещены в ОП). Далее, известны одно-, двух- и трехадресные машины (системы команд). Очевидна связь таких параметров ЦУ, как длина адресного пространства, адресность, разрядность. Увеличение разрядности позволяет увеличить адресность команды и длину адреса (т. е. объем памяти, доступной данной команде). Увеличение адресности, в свою очередь, приводит к повышению быстродействия обработки (за счет снижения числа требуемых команд). В трехадресной машине, например, сложение двух чисел требует одной команды (извлечь число по А1, число по А2, сложить и записать результат по A3). В двухадресной необходимы две команды (первая – извлечь число по А1 и поместить в РЧ (или сумматор), вторая – извлечь число по А1, сложить с содержимым РЧ и результат записать по А2). Легко видеть, что одноадресная машина потребует три команды. Типовая структура трехадресной команды:
где А2 и A3 – адреса ячеек (регистров), где расположены соответственно первое и второе числа, участвующие в операции; А1 – адрес ячейки (регистра), куда следует поместить число, полученное в результате выполнения операции. Типовая структура двухадресной команды:
где А1 – это обычно адрес ячейки (регистра), где хранится первое из чисел, участвующих в операции, и куда после завершения операции должен быть записан результат операции; А2 – обычно адрес ячейки (регистра), где хранится второе участвующее в операции число. Типовая структура одноадресной команды:
где А1 в зависимости от модификации команды может обозначать либо адрес ячейки (регистра), в которой хранится одно из чисел, участвующих в операции, либо адрес ячейки (регистра), куда следует поместить число – результат операции. Безадресная команда содержит только код операции, а информация для нее должна быть заранее помещена в определенные регистры машины. Наибольшее применение нашли двухадресные системы команд.
|