Количество адресов в команде
Для определения количества адресов, включаемых в адресную часть, будем использовать термин адресность. В «максимальном» варианте необходимо указать три компонента: адрес первого операнда, адрес второго операнда и адрес ячейки, куда заносится результат операции. В принципе может быть добавлен еще один адрес, указывающий место хранения следующей инструкции. В итоге имеет место четырехадресный формат команды (рис. 9.1). Такой формат поддерживался в ВМ EDVAC разработанной в 1940 годах.
Рис. 9.1. Четырехадресный формат команды
В фон-неймановских ВМ необходимость в четвертом адресе отпадает, поскольку команды располагаются в памяти в порядке их выполнения, и адрес очередной команды может быть получен за счет простого увеличения адреса текущей команды в счетчике команд. Это позволяет перейти к трехадресному формату команды (рис. 9.2). Требуется только добавить в систему команд ВМ команды, способные изменять порядок вычислений.
Рис. 9.2. Трехадресный формат команды
К сожалению, и в трехадресном формате длина команды может оказаться весьма большой. Так, если адрес ячейки основной памяти имеет длину 32 бита, а длина кода операции - 8 бит, то длина команды составит 104 бита (13 байт).
Если по умолчанию взять в качестве адреса результата адрес одного из операндов (обычно второго), то можно обойтись без третьего адреса, и в итоге получаем двухадресный формат команды (Рис. 9.3.). Естественно, что в этом случае соответствующий операнд после выполнения операции теряется.
Рис. 9.3. Двухадресный формат команды
Команду можно еще более сократить, перейдя к одноадресному формату (рис. 9.4), что возможно при выделении определенного стандартного места для хранения первого операнда и результата.' Обычно для этой цели используется специальный регистр центрального процессора (ЦП), известный под названием аккумулятора, поскольку здесь аккумулируется результат.
Рис. 9.4. Одноадресный формат команды
Применение единственного регистра для хранения одного из операндов и результата является ограничивающим фактором, поэтому помимо аккумулятора часто используют и другие регистры ЦП. Так как число регистров в ЦП невелико, для указания одного из них в команде достаточно иметь сравнительно короткое адресное поле. Соответствующий формат носит название полутораадресного или регистрового формата (рис. 9.5).
Рис. 9.5. Полутораадресный формат команды
Наконец, если для обоих операндов указать четко заданное местоположение, а также в случае команд, не требующих операнда, можно получить нульадресный формат команды (рис. 9.6).
Рис. 9.6. Нульадресный формат команды
В таком варианте адресная часть команды вообще отсутствует или не задействуется.
Дата добавления: 2017-05-02; просмотров: 1389;