Архитектура базовой ЭВМ. Кириллов В.В. - 58 стр.

UptoLike

Составители: 

55
Пример 2.4. Получить модуль числа X, содержащегося в ячейке памяти с
адресом 100. Результат поместить в ячейку с адресом 200. Программа получения
модуля приведена в табл. 2.9.
Таблица 2.9
Программа получения модуля
Адрес
Содержимое
Комментарии
Код
Мнемоника
0
1
2
F200
4006
9005
CLA
ADD 100
BPL 5
Очистить аккумулятор (аккумулятор содержит 0)
Аккумулятор содержит аргумент Х
Если Х 0, то перейти к команде, расположенной в ячейке с
адресом 5
3
4
F400
F800
CMA
INC
Изменение знака числа Х, представленного в
дополнительном коде
5
6
3200
F000
MOV 200
HLT
Запись │Х│в ячейку с адресом 200
Останов ЭВМ (прекращение выборки команд)
Циклические программы используются в тех случаях, когда
требуется несколько раз выполнить набор одинаковых действий над
некоторым изменяющимся составом данных.
Базовая ЭВМ обладает рядом средств для упрощения
организации циклических программ. Целесообразность введения
этих средств удобнее всего рассмотреть на примерах.
Сначала рассмотрим получение произведения Z=50Y. Так как в
системе команд базовой ЭВМ нет команды умножения, то
воспользуемся простейшим способом: будем 50 раз складывать
значение Y. При этом линейная программа, содержащая 50 команд
ADD Y, вряд ли займет первое место в конкурсе программ для
умножения. Ее, наверное, опередит программа, приведенная в табл.
2.10.
Существуют ли пути упрощения этой программы? Да.
Например, вместо подсчета и проверки количества
выполненных циклов можно подсчитывать и проверять количество
циклов, оставшихся до завершения работы программы, т. е.
уменьшать в цикле значение М до тех пор, пока оно не станет
равным нулю. Тогда отпадает необходимость в использовании
ячейки 8 и команды вычитания (SUB 7) команды с 15 по 19 заме-
няются последовательностью команд: ADD 7, DEC, MOV 7, BEQ 1A,
BR 10. Если же в ячейку 7 поместить отрицательное значение
множителя 50 = = (FFCE) 16, то команды с 15 по 19 можно заменить
последовательностью команд: ADD 7, INC, MOV 7, BMI 10, HLT, т.
е. освободить еще и ячейку 1A.