Логические и арифметические основы и принципы работы ЭВМ



         

Система кодирования команд


Запись любой команды определяется ее форматом. Формат команды – это структура команды, позволяющая распознать назначение отдельных ее полей.

Исходя из определения, команда должна содержать информацию о выполняемой операции, адресах операндов и адресе ячейки ЗУ для записи результата. Этому в наибольшей степени соответствует формат команды, содержащий поле кода операции и три адресных поля. Такая система кодирования команд называется трехадресной (рис.11.1,в).

Схема выполнения трехадресной команды имеет вид:

(А1)*(А2)->А3.

Здесь (А1) и (А2) – адреса ячеек ЗУ, в которых хранятся первый и второй операнды соответственно; * – знак обобщенной операции (например, сложение или умножение), задаваемой полем кода операции (КОп). Знак "->" обозначает передачу результата операции в ячейку памяти с адресом А3.

Системы кодирования команд

Рис. 11.1.  Системы кодирования команд

Для выполнения операции сложения операндов, находящихся по адресам a и b, с записью результата в ячейку c (c = a + b) требуется одна команда такого формата:

КОпА1А2А3
ADDabc

Здесь ADD – код операции сложения.

Формат двухадресной команды представлен на рис.11.1,б. Выполнение операции с помощью такой команды проходит по следующей схеме:

(А1) * (А2) -> А1 или

(А1) * (А2) -> А2

Выполнение того же самого действия c = a + b в двухадресной системе кодирования команд потребует уже двух команд, например:

КОпА1А2
ADDaba = a + b
MOVcac = a

Одноадресная команда имеет формат, приведенный на рис.11.1,а. Обычно ЭВМ с одноадресной системой команд имеют особую структуру, в состав которой входит специальный регистр (регистр результата – РР). Он служит для хранения результата операции и используется в качестве одного из операндов при выполнении операции (рис. 11.2).

Схема выполнения операции в ЭВМ с одноадресной системой команд

Рис. 11.2.  Схема выполнения операции в ЭВМ с одноадресной системой команд

Схема выполнения операции на ЭВМ с одноадресной системой команд имеет вид:

(А) * (РР) -> А или

(А) * (РР) -> РР.

Операцию c = a + b в одноадресной системе команд можно выполнить следующим образом:




Содержание  Назад  Вперед