Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТО_САПР_2010_11.doc
Скачиваний:
8
Добавлен:
08.11.2018
Размер:
19.26 Mб
Скачать

Программа вычисления суммы двух чисел

Ячейки

Комментарии

Адрес

Содержимое

20

21

22

23

24

25

26

27

0053

0106

0000

CLA

ADD 20

ADD 21

MOV 22

HLT

Первое слагаемое.

Второе слагаемое.

Ячейка, предназначенная для результата.

Аккумулятор содержит 0000 (очистка).

Аккумулятор содержит 53.

Аккумулятор содержит 159 (53+106).

В ячейку с адресом 22 записывается 159.

Останов машины (прекращение выборки команд).

Программа записана в память ЭВМ начиная с ячейки 23, а числовые данные — с ячейки 20. Ячейка с номером 22 отведена для записи суммы. Для выполнения программы необходимо установить в счетчик команд число 23 и пустить ЭВМ. Тогда выполнение программы начнется с чтения содержимого ячейки 23. Команда CLA установит аккумулятор в нуль. При выполнении этой команды содержимое счетчика команд увеличится на 1, и следующая команда будет считываться из ячейки 24. Это команда ADD 20 складывает содержимое ячейки 20 с содержимым аккумулятора, т. е. 53 с 0. По окончании выполнения команды в аккумуляторе содержится число 53, а в счетчике команд — 25 (он опять наращивается на 1).

Следующая команда читается из ячейки 25, выполняется суммирование содержимого ячейки 21 и аккумулятора, т. е. 106 и 53. По окончании команды в аккумуляторе содержится сумма 106 + 53 = 159, а в счетчике команд — 26. Следующая команда — MOV 22 пересылает содержимое аккумулятора в ячейку с адресом 22. Теперь в этой ячейке и аккумуляторе содержится число 159, а в счетчике команд — 27. Из ячейки 27 выбирается команда HLT, счетчик команд наращивается на 1 (в нем содержится число 28), но по команде HLT прекращается выборка команд, т. е фиксируется окончание выполнения программы (содержимое ячейки 28 не выбирается в регистр команд и не интерпретируется как команда).

Рассмотрим теперь подробнее выполнение одной из команд этой программы, например команды ADD 21. Перед ее выполнением в регистре команд хранится предыдущая команда (ADD 20), в регистре адреса — адрес ее операнда (20), в регистре данных и аккумуляторе — значение этого операнда (53) и в счетчике команд — адрес рассматриваемой команды (25).

Сначала адрес команды пересылается из счетчика команд в регистр адреса (рис. 2.2, а). Здесь следует отметить, что в базовой ЭВМ все пересылки между регистрами выполняются через АЛУ (при необходимости пересылаемое значение инвертируется, к нему добавляется единица и т. п.). Затем из памяти в регистр данных выбирается содержимое ячейки памяти, адрес которой расположен в регистре адреса, и производится увеличение на единицу содержимого счетчика команд (рис. 2.2, б, в).

Наконец, содержимое регистра данных пересылается в регистр команд, и устройство управления начинает анализировать это содержимое, т. е. команду ADD 21

(рис. 2.2, г). Перечисленные действия относятся к «Выборке команды».

Рис.2.2. Выполнение команды ADD 21.

Расшифровав код операции команды ADD 21, устройство управления пересылает ее адресную часть (адрес 21) в регистр адреса (рис. 2.2, д). Пересылка осуществляется из регистра данных, где еще сохраняется копия команды. Затем из памяти в регистр данных считывается содержимое ячейки памяти, адрес которой расположен в регистре адреса (рис. 2.2, е). Это действие аналогично действию на рис. 2.2, б, но устройство управления будет теперь рассматривать содержимое регистра данных не как команду, а как слагаемое, которое на следующем шаге складывается с содержимым аккумулятора (рис. 2.2, ж). Наконец, полученная в АЛУ сумма пересылается в аккумулятор (рис. 2.2, з) и тем самым завершается «Исполнение команды». Набор и (или) порядок выполнения операций в этом цикле уникальны для каждой из команд ЭВМ и будут рассмотрены ниже.