Лабораторная работа № 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; просмотров: 2389;
