Лабораторная работа № 2. Программирование разветвляющегося процесса
Для реализации алгоритмов, пути в которых зависят от исходных данных, используют команды условной передачи управления.
Пример 2
В качестве примера (несколько упрощенного по сравнению с заданиями лабораторной работы № 2) рассмотрим программу вычисления функции
У= (х-11)2 - 125, при х >=16
( х2 +72х-6400) /-168 при х <=16,
причем х вводится с устройства ввода IR, результат у выводится на OR ( устройство вывода).
В данной лабораторной работе используются двухсловные команды с непосредственной адресацией, позволяющие оперировать отрицательными числами и числами по модулю, превышающие 999, в качестве непосредственного операнда.
Оценив размер программы примерно в 20—25 команд, отведем для области данных ячейки ОЗУ, начиная с адреса 030. Составленная программа с комментариями представлена в виде табл. 3.4.
Таблица 3.4.
Пример программы
Адрес | Команда | Примечание | ||||
Мнемокод | Код | |||||
IN | 010 000 | Ввод х | ||||
WR 30 | 22 0 030 | Размещение х в ОЗУ(ОЗО) | ||||
SUB #16 | 24 1 016 | Сравнение с границей — (х -16) | ||||
JS 010 | Переход по отрицательной разности | |||||
RD 30 | 210 030 | Вычисления по первой формуле | ||||
SUB #11 | 24 1 011 | |||||
WR 31 | 22 0 031 | |||||
MUL 31 | 25 0 031 | |||||
SUB #125 | 24 1 125 | |||||
JMP 020 | 10 0 020 | Переход на вывод результата | ||||
RD 30 | 21 0 030 | Вычисления по второй формуле | ||||
MUL 30 | 25 0 030 | |||||
WR 31 | 22 0 031 | |||||
RD 30 | 21 0 030 | |||||
MUL #72 | 25 1 072 | |||||
ADD 31 | 23 0 031 | |||||
ADI 106400 | 43 0 000 | |||||
DIVI 100168 | 46 0 000 | |||||
OUT | 02 0000 | Вывод результата | ||||
HLT | 09 0000 | Стоп | ||||
Дата добавления: 2015-04-07; просмотров: 2243;