Для реализации алгоритмов, пути в которых зависят от исходных данных, используют команды условной передачи управления.
Пример 2
В качестве примера (несколько упрощенного по сравнению с заданиями лабораторной работы № 2) рассмотрим программу вычисления функции, причем x вводится с устройства ввода IR, результат у выводится на OR. Граф-схема алгоритма решения задачи показана на рис. 1.

В данной лабораторной работе используются двухсловные команды с непосредственной адресацией, позволяющие оперировать отрицательными числами и числами по модулю, превышающие 999, в качестве непосредственного операнда.
Оценив размер программы примерно в 20—25 команд, отведем для области данных ячейки ОЗУ, начиная с адреса 030. Составленная программа с комментариями представлена в виде табл. 4.
Таблица 4. Пример программы
Адрес
|
Команда |
Примечание
|
|
Мнемокод |
Код |
||
000 | IN | 01 0 000 | Ввод x |
001 | WR 30 | 22 0 030 | Размещение х в ОЗУ(ОЗО) |
002 | SUB #16 | 24 1 016 | Сравнение с границей — (x -16) |
003 | JS 010 | 130010 | Переход по отрицательной разности |
004 | RD 30 | 21 0 030 | Вычисления по первом формуле |
005 | SUB #11 | 24 1 011 | |
006 | WR 31 | 22 0 031 | |
007 | MUL 31 | 25 0 031 | |
008 | SUB #125 | 24 1 125 | |
009 | JMP 020 | 10 0 020 | Переход на вывод результата |
010 | RD 30 | 21 0 030 | Вычисления по второй формуле |
011 | MUL 30 | 25 0 030 | |
012 | WR 31 | 22 0 031 | |
013 | RD 30 | 21 0 030 | |
014 | MUL #72 | 25 1 072 | |
015 | ADD 31 | 23 0 031 | |
016 | ADI 106400 | 43 0 000 | |
017 | 106400 | ||
018 | DIVI 100168 | 46 0 000 | |
019 | 100168 | ||
020 | OUT | 02 0 000 | Вывод результата |
021 | HLT | 09 0 000 | Стоп |
Задание 2
- Разработать программу вычисления и вывода значения функции:
для вводимого из IR значения аргумента х. Функции и допустимые пределы изменения аргумента приведены в табл. 5, варианты заданий — в табл. 6.
- Исходя из допустимых пределов изменения аргумента функций (табл. 5) и значения параметра а для своего варианта задания (табл. 6) выделить на числовой оси Ох области, в которых функция у вычисляется по представленной в п.1 формуле, и недопустимые значения аргумента. На недопустимых значениях аргумента программа должна выдавать на OR максимальное отрицательное число: 199 999.
- Ввести текст программы в окно Текст программы, при этом возможен набор и редактирование текста непосредственно в окне Текст программы или загрузка текста из файла, подготовленного в другом редакторе.
- Ассемблировать текст программы, при необходимости исправить синтаксические ошибки.
- Отладить программу. Для этого:
а) записать в IR значение аргумента х > а (в области допустимых значений);
б) записать в PC стартовый адрес программы;
в) проверить правильность выполнения программы (т. е. правильность результата и адреса останова) в автоматическом режиме. В случае наличия ошибки выполнить пп. 5, г и 5, д; иначе перейти к п. 5, е;
г) записать в PC стартовый адрес программы;
д) наблюдая выполнение программы в режиме Шаг, найти команду, являющуюся причиной ошибки; исправить ее; выполнить пп. 5, а — 5, в;
е) записать в IR значение аргумента х<а (в области допустимых значений); выполнить пп. 5, б и 5, в;
ж) записать в IR недопустимое значение аргумента x и выполнить пп. 5, б и 5, в.
- Для выбранного допустимого значения аргумента х наблюдать выполнение отлаженной программы в режиме Шаг и записать в форме табл. 2 содержимое регистров ЭВМ перед выполнением каждой команды.
Таблица 5. Функции
Таблица 6. Варианты задания 2
Номер варианта | i | j | а | Номер варианта | i | j | a |
1 | 2 | 1 | 12 | 10 | 5 | 7 | 50 |
2 | 4 | 3 | 20 | 11 | 2 | 4 | 18 |
3 | 8 | 4 | 15 | 12 | 8 | 1 | 12 |
4 | 6 | 1 | 12 | 13 | 7 | 6 | 25 |
5 | 5 | 2 | 50 | 14 | 1 | 4 | 5 |
6 | 7 | 3 | 15 | 15 | 3 | 8 | 10 |
7 | 6 | 2 | 11 | 16 | 1 | 8 | 13 |
8 | 8 | 6 | 30 | 17 | 4 | 7 | 15 |
9 | 2 | 6 | 25 | 18 | 3 | 7 | 19 |
Содержание отчета
Отчет о лабораторной работе должен содержать следующие разделы:
- Формулировка варианта задания.
- Граф-схема алгоритма решения задачи.
- Размещение данных в ОЗУ.
- Программа в форме табл. 9.4.
- Последовательность состояний регистров ЭВМ при выполнении программы в режиме Шаг для одного значения аргумента.
- Результаты выполнения программы для нескольких значений аргумента,
выбранных самостоятельно.
Контрольные вопросы
- Как работает механизм косвенной адресации?
- Какая ячейка будет адресована в команде с косвенной адресацией через ячейку 043, если содержимое этой ячейки равно 102 347?
- Как работают команды передачи управления?
- Что входит в понятие «отладка программы»?
- Какие способы отладки программы можно реализовать в модели?