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

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

Пример

В качестве примера (несколько упрощенного по сравнению с заданиями лабораторной работы № 2) рассмотрим программу вычисления функции

Программирование разветвляющегося процесса - student2.ru

причем х вводится с устройства ввода IR, результат у выводится на OR. Граф-схема алгоритма решения задачи показана на рис. 9.1.

Программирование разветвляющегося процесса - student2.ru

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

Оценив размер программы примерно в 20—25 команд, отведем для области данных ячейки ОЗУ, начиная с адреса 030. Составленная программа с комментариями представлена в виде табл. 9.4.

Таблица 9.4.Пример программы

Адрес Команда Примечание
    Мнемокод Код    
IN 010 000 Ввод х
WR 30 22 0 030 Размещение х в ОЗУ(ОЗО)
SUB #16 24 1 016 Сравнение с границей — (д: —16)
JS 010 Переход по отрицательной разности
RD 30 21 0 030 Вычисления по первой формуле
SUB #11 24 1011  
WR 31 22 0 031  
MUL 31 25 0 031  
SUB #125 24 1125  
JMP 020 10 0 020 Переход на вывод результата
RD 30 210 030 Вычисления по второй формуле
MUL 30 25 0 030  
WR 31 22 0 031  
RD 30 210 030  
MUL #72 25 1072  
ADD 31 23 0 031  
ADI 106400 43 0 000  
   
DIVI 100168 46 0 000  
   
Адрес Команда Примечание
    Мнемокод Код    
OUT 02 0 000 Вывод результата
HLT 09 0000 Стоп

1. Разработать программу вычисления и вывода значения функции:

Программирование разветвляющегося процесса - student2.ru

для вводимого из IR значения аргумента х. Функции и допустимые пределы изменения аргумента приведены в табл. 9.5, варианты заданий — в табл. 9.6.

2. Исходя из допустимых пределов изменения аргумента функций (табл. 9.5) и значения параметра а для своего варианта задания (табл. 9.6) выделить на числовой оси Ох области, в которых функция у вычисляется по представленной в п. 1 формуле, и недопустимые значения аргумента. На недопустимых значениях аргумента программа должна выдавать на OR максимальное отрицательное число: 199 999.

3. Ввести текст программы в окно Текст программы,при этом возможен набор и редактирование текста непосредственно в окне Текстпрограммы или загрузка текста из файла, подготовленного в другом редакторе.

4. Ассемблировать текст программы, при необходимости исправить синтаксические ошибки.

5. Отладить программу. Для этого:

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

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

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

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

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

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

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

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

7. В выполняемой программе обеспечить вывод значений Х на монитор. Предусмотреть обработку нажатия клавиши, для прерывания расчета. Опрос клавиатуры организовать через систему прерываний.

8. Произвести расчет для значении х а-10, а-7, а-5, а-3, а, а+3, а+5, а+7, а+10. Результат оформить в виде таблицы.

 
  Программирование разветвляющегося процесса - student2.ru


Таблица 9.6.Варианты задания 2
Номер варианта Программирование разветвляющегося процесса - student2.ru Программирование разветвляющегося процесса - student2.ru Программирование разветвляющегося процесса - student2.ru Номер варианта Программирование разветвляющегося процесса - student2.ru Программирование разветвляющегося процесса - student2.ru Программирование разветвляющегося процесса - student2.ru
-20

Содержание контрольной работы

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

1. Формулировка варианта задания.

2. Граф-схема алгоритма решения задачи.

3. Размещение данных в ОЗУ.

4. Программа в форме табл. 9.4.

5. Последовательность состояний регистров ЭВМ при выполнении программы в режиме Шаг для одного значения аргумента.

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

7. Ответы на контрольные вопросы

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

1. Как работает механизм косвенной адресации?

2. Какая ячейка будет адресована в команде с косвенной адресацией через ячейку 043, если содержимое этой ячейки равно 102 347?

3. Как работают команды передачи управления?

4. Что входит в понятие "отладка программы"?

5. Какие способы отладки программы можно реализовать в модели?

Задание для четных вариантов

Наши рекомендации