Лабораторная 3: Программирование разветвляющегося процесса

Для реализации алгоритмов, пути в которых зависят от исходных данных, используют команды условной передачи управления.

Пример 2

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

л 3.1

Рис. 1. Граф-схема алгоритма
Рис. 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

  1. Разработать программу вычисления и вывода значения функции:л 3.3для вводимого из IR значения аргумента х. Функции и допустимые пределы изменения аргумента приведены в табл. 5, варианты заданий — в табл. 6.
  1. Исходя из допустимых пределов изменения аргумента функций (табл. 5) и значения параметра а для своего варианта задания (табл. 6) выделить на числовой оси Ох области, в которых функция у вычисляется по представленной в п.1 формуле, и недопустимые значения аргумента. На недопустимых значениях аргумента программа должна выдавать на OR максимальное отрицательное число: 199 999.
  2. Ввести текст программы в окно Текст программы, при этом возможен набор и редактирование текста непосредственно в окне Текст программы или загрузка текста из файла, подготовленного в другом редакторе.
  3. Ассемблировать текст программы, при необходимости исправить синтаксические ошибки.
  4. Отладить программу. Для этого:

а)  записать в IR значение аргумента х > а (в области допустимых значений);

б)  записать в PC стартовый адрес программы;

в)  проверить правильность выполнения программы (т. е. правильность результата и адреса останова) в автоматическом режиме. В случае наличия ошибки выполнить пп. 5, г и 5, д; иначе перейти к п. 5, е;

г)  записать в PC стартовый адрес программы;

д)  наблюдая выполнение программы в режиме Шаг, найти команду, являющуюся причиной ошибки; исправить ее; выполнить пп. 5, а — 5, в;

е)  записать в IR значение аргумента х<а (в области допустимых значений); выполнить пп. 5, б и 5, в;

ж)  записать в IR недопустимое значение аргумента x и выполнить пп. 5, б и 5, в.

  1. Для выбранного допустимого значения аргумента х наблюдать выполнение отлаженной программы в режиме Шаг и записать в форме табл. 2 содержимое регистров ЭВМ перед выполнением каждой команды.

Таблица 5. Функции

л 3.4

Таблица 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

Содержание отчета

Отчет о лабораторной работе должен содержать следующие разделы:

  1. Формулировка варианта задания.
  2. Граф-схема алгоритма решения задачи.
  3. Размещение данных в ОЗУ.
  4. Программа в форме табл. 9.4.
  5. Последовательность состояний регистров ЭВМ при выполнении программы в режиме Шаг для одного значения аргумента.
  6. Результаты выполнения программы для нескольких значений аргумента,
    выбранных самостоятельно.

Контрольные вопросы

  1. Как работает механизм косвенной адресации?
  2. Какая ячейка будет адресована в команде с косвенной адресацией через ячейку 043, если содержимое этой ячейки равно 102 347?
  3. Как работают команды передачи управления?
  4. Что входит в понятие «отладка программы»?
  5. Какие способы отладки программы можно реализовать в модели?