« Назад
Лабораторная работа №2 на тему Программирование разветвляющегося процесса
Цель: построение разветвляющегося процесса, изучение двухсловных команд с непосредственной адресацией, позволяющих оперировать отрицательными числами и числами по модулю.
Теоретические сведения
Для реализации алгоритмов, пути в которых зависят от исходных данных, используют команды условной передачи управления.
Пример 2
В качестве примера (несколько упрощенного по сравнению с заданиями лабораторной работы № 2) рассмотрим программу вычисления функции, причем вводится с устройства ввода IR, результат у выводится на OR. Граф-схема алгоритма решения задачи показана на рисунке 2.1.
Рисунок 2.1 – Граф-схема алгоритма
В данной лабораторной работе используются двухсловные команды с непосредственной адресацией, позволяющие оперировать отрицательными числами и числами по модулю, превышающими 999, в качестве непосредственного операнда.
Оценив размер программы примерно в 20-25 команд, отведем для области данных ячейки ОЗУ, начиная с адреса 030. Составленная программа с комментариями представлена в виде таблицы 2.1.
Таблица 2.1 Пример программы
|
Адрес
|
Команда
|
Примечание
|
|
Мнемокод
|
Код
|
|
000
|
IN
|
010000
|
Ввод x
|
|
001
|
WR 30
|
220030
|
Размещение x в ОЗУ(ОЗО)
|
|
002
|
SUB #16
|
241016
|
Сравнение с границей — (х -16)
|
|
003
|
JS 010
|
130010
|
Переход по отрицательной разности
|
|
004
|
RD 30
|
210030
|
Вычисления по первой формуле
|
|
005
|
SUB #11
|
241011
|
|
|
006
|
WR 31
|
220031
|
|
|
007
|
MUL 31
|
250031
|
|
|
008
|
SUB #125
|
241125
|
|
|
009
|
JMP 020
|
100020
|
Переход на вывод результата
|
|
010
|
RD 30
|
210030
|
Вычисления по второй формуле
|
|
011
|
MUL 30
|
250030
|
|
|
012
|
WR 31
|
220031
|
|
|
013
|
RD 30
|
210030
|
|
|
014
|
MUL #72
|
251072
|
|
|
015
|
ADD 31
|
230031
|
|
|
016
|
ADI 106400
|
430000
|
|
|
017
|
|
106400
|
|
|
018
|
DIVI 100168
|
460000
|
|
|
019
|
|
100168
|
|
|
020
|
OUT
|
020000
|
Вывод результата
|
|
021
|
HLT
|
090000
|
Стоп
|
Задание
-
Разработать программу вычисления и вывода значения функции, для вводимого из IR значения аргумента . Функции и допустимые пределы изменения аргумента приведены в таблице 2.2, варианты заданий – в таблице 2.3.
-
Исходя из допустимых пределов изменения аргумента функций (таблица 2.2) и значения параметра для своего варианта задания (таблица 2.3) выделить на числовой оси области, в которых функция вычисляется по формуле 2.2, и недопустимые значения аргумента. На недопустимых значениях аргумента программа должна выдавать на OR максимальное отрицательное число: 199999.
-
Ввести текст программы в окно Текст программы, при этом возможен набор и редактирование текста непосредственно в окне Текст программы или загрузка текста из файла, подготовленного в другом редакторе.
-
Ассемблировать текст программы, при необходимости исправить синтаксические ошибки.
-
Отладить программу. Для этого:
a) записать в IR значение аргумента (в области допустимых значений);
b) записать в PC стартовый адрес программы;
c) проверить правильность выполнения программы (т.е. правильность результата и адреса останова) в автоматическом режиме. В случае наличия ошибки выполнить п. 5, d и п. 5, e; иначе перейти к п. 5, f;
d) записать в PC стартовый адрес программы;
e) наблюдая выполнение программы в режиме Шаг, найти команду, являющуюся причиной ошибки; исправить ее; выполнить п. 5, a – п. 5, c;
f) записать в IR значение аргумента (в области допустимых значений); выполнить п. 5, b и п. 5, c;
g) записать в IR недопустимое значение аргумента и выполнить п. 5, b и п. 5, c.
Для выбранного допустимого значения аргумента наблюдать выполнение отлаженной программы в режиме Шаг и записать в форме таблицы 1.2 содержимое регистров ЭВМ перед выполнением каждой команды.
Таблица 2.3 Варианты заданий
|
Номер варианта
|
|
|
|
|
Номер варианта
|
|
|
|
|
1.
|
2
|
1
|
12
|
8.
|
8
|
6
|
30
|
|
2.
|
4
|
3
|
-20
|
9.
|
2
|
6
|
25
|
|
3.
|
8
|
4
|
15
|
10.
|
5
|
7
|
50
|
|
4.
|
6
|
1
|
12
|
11.
|
2
|
4
|
18
|
|
5.
|
5
|
2
|
50
|
12.
|
8
|
1
|
12
|
|
6.
|
7
|
3
|
15
|
13.
|
7
|
6
|
25
|
|
7.
|
6
|
2
|
11
|
14.
|
1
|
4
|
5
|
Содержание отчета
-
Титульная страница;
-
Цель;
-
Формулировка варианта;
-
Краткие теоретические сведения;
-
Граф-схема алгоритма решения задачи;
-
Размещение данных в ОЗУ;
-
Программа по форме таблицы 2.1;
-
Последовательность состояний регистров ЭВМ при выполнении программы в режиме Шаг для одного значения аргумента;
-
Результаты выполнения программы для нескольких значений аргумента, выбранных самостоятельно;
-
Вывод.
Контрольные вопросы
-
Как работает механизм косвенной адресации?
-
Какая ячейка будет адресована в команде с косвенной адресацией через ячейку 043, если содержимое этой ячейки равно 102347?
-
Как работают команды передачи управления?
-
Что входит в понятие "отладка программы"?
-
Какие способы отладки программы можно реализовать в модели?
З повагою ІЦ "KURSOVIKS"!
|