Автор работы: Пользователь скрыл имя, 01 Февраля 2013 в 16:53, лабораторная работа
Цель работы: научиться использовать команды условной передачи управления для реализации алгоритмов, пути в которых зависят от исходных данных.
Пояснения к работе
В качестве примера (несколько упрощенного по сравнению с заданиями лабораторной работы) рассмотрим программу вычисления функции:
причем х вводится с устройства ввода IR, результат выводится на OR.
Цель работы: научиться использовать команды условной передачи управления для реализации алгоритмов, пути в которых зависят от исходных данных.
Пояснения к работе
В качестве примера (несколько упрощенного по сравнению с заданиями лабораторной работы) рассмотрим программу вычисления функции:
причем х вводится с устройства ввода IR, результат выводится на OR.
Блок-схема алгоритма решения задачи показана на рис.1.
Рисунок 1. Блок-схема алгоритма
В данной лабораторной работе используются двухсловные команды с непосредственной адресацией, позволяющие оперировать отрицательными числами и числами по модулю, превышающие 999, в качестве непосредственного операнда.
Оценив размер программы примерно в 20–25 команд, отведем для области данных ячейки ОЗУ, начиная с адреса 030. Составленная программа с комментариями представлена в виде табл. 4.
Таблица 4. Пример программы
Адрес |
Команда |
Примечание | ||
Мнемокод |
Код | |||
000 |
IN |
01 0000 |
Ввод х | |
001 |
WR 30 |
22 0 030 |
Размещение х в ОЗУ(ОЗО) | |
002 |
SUB #16 |
24 1 016 |
Сравнение с границей — (х--16) | |
003 |
JS 010 |
13 0 010 |
Переход по отрицательной разности | |
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 |
|
10 6 400 |
| |
018 |
DIVI 100168 |
46 0 000 |
| |
019 |
|
10 0 168 |
| |
020 |
OUT |
02 0 000 |
Вывод результата | |
021 |
HLT |
09 0 000 |
Стоп |
Задание
1. Разработать программу
для вводимого из IR значения аргумента х. Функции и допустимые пределы изменения аргумента приведены в табл. 9.5, варианты заданий – в табл. 9.6.
2. Исходя из допустимых пределов изменения аргумента функций (табл. 5) и значения параметра а для своего варианта задания (табл. 6) выделить на числовой оси Ох области, в которых функция у вычисляется по представленной в п. 1 формуле, и недопустимые значения аргумента. На недопустимых значениях аргумента программа должна выдавать на OR максимальное отрицательное число: 199 999.
3. Ввести текст программы в окно Текст программы, при этом возможен набор и редактирование текста непосредственно в окне Текст программы или загрузка текста из файла, подготовленного в другом редакторе.
4. Ассемблировать текст программы, при необходимости исправить синтаксические ошибки.
5. Отладить программу. Для этого:
а) записать в IR значение аргумента х>а (в области допустимых значений);
б) записать в PC стартовый адрес программы;
в) проверить правильность выполнения программы (т. е. правильность результата и адреса останова) в автоматическом режиме. В случае наличия ошибки выполнить пп. 5, г и 5, д; иначе перейти к п. 5, е;
г) записать в PC стартовый адрес программы;
д) наблюдая выполнение программы в режиме Шаг, найти команду, являющуюся причиной ошибки; исправить ее; выполнить пп. 5, а – 5, в;
е) записать в IR значение аргумента х<а (в области допустимых значений); выполнить пп. 5, б и 5, в;
ж) записать в IR недопустимое значение аргумента х и выполнить пп. 5, б и 5, в.
6. Для выбранного допустимого значения аргумента х: наблюдать выполнение отлаженной программы в режиме Шаг и записать в форме табл.2 содержимое регистров ЭВМ перед выполнением каждой команды. Таблица 5. Функции
k |
k |
||
1 |
|
5 |
|
2 |
|
6 |
|
3 |
|
7 |
|
4 |
|
8 |
|
Номер варианта |
i |
j |
a |
Номер варианта |
i |
j |
а |
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 |
Отчет о лабораторной работе должен содержать следующие разделы:
1. Формулировка варианта задания.
2. Граф-схема алгоритма решения задачи.
3. Размещение данных в ОЗУ.
4. Программа в форме табл.4.
5. Последовательность состояний регистров ЭВМ при выполнении программы в режиме Шаг для одного значения аргумента.
6. Результаты выполнения
Контрольные вопросы
1. Как работает механизм косвенной адресации?
2. Какая ячейка будет адресована в команде с косвенной адресацией через ячейку 043, если содержимое этой ячейки равно 102 347?
3. Как работают команды передачи управления?
4. Что входит в понятие «отладка программы»?
5. Какие способы отладки
Информация о работе Программирование разветвляющегося процесса