Практическая работа №13-14-15
Программа вычисления функции
Порядок выполнения практической работы:
-
Ознакомиться с теоретическими сведениями о командах управления модельной ЭВМ.
-
Запустите программу CompModel.exe.
-
Выполнить пример. В качестве примера рассмотрим программу вычисления функции:
Причем х вводится с устройства ввода IR, результат у выводится на OR. Граф-схема алгоритма решения задачи показана на рис.1.
В данном примере используются двухсловные команды с непосредственной адресацией, позволяющие оперировать отрицательными числами и числами по модулю, превышающие 999, в качестве непосредственного операнда.
Оценив размер программы примерно в 20—25 команд, отведем для области данных ячейки ОЗУ, начиная с адреса 030. Составленная программа с комментариями представлена в виде табл. 1.
Таблица 1. Пример программы
Адрес
|
Команда
|
Примечание
|
|
Мнемокод
|
Код
|
|
000
|
IN
|
010 000
|
Ввод х
|
001
|
WR 30
|
22 0 030
|
Размещение x в ОЗУ(ОЗО)
|
002
|
SUB #16
|
24 1016
|
Сравнение с границей — (х -16)
|
003
|
JS 010
|
130010
|
Переход по отрицательной разности
|
004
|
RD 30
|
210 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
|
210 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
|
Стоп
|
Задание:
Отчет о практической работе должен содержать следующие разделы:
1. Формулировка варианта задания.
2. Граф-схема алгоритма решения задачи.
3. Размещение данных в ОЗУ.
4. Программа в форме табл. 1.
5. Результаты выполнения программы записать в таблицу 2
Таблица 2. Результаты выполнения программы
PC
|
Асс
|
М(хх)
|
М(нн)
|
PC
|
Асс
|
М(мм)
|
М(оо)
|
000
|
|
|
|
|
|
|
|
001
|
|
|
|
|
|
|
|
002
|
|
|
|
|
|
|
|
003
|
|
|
|
|
|
|
|
Выполнение практической работы:
Начало
Ввод x
x
Вывод y
Вывод
Таблица 1.
Адрес
|
Команда
|
Примечание
|
|
Мнемокод
|
Код
|
|
000
|
IN
|
010000
|
Ввод х
|
001
|
WR 30
|
220030
|
Размещение x в ОЗУ(ОЗО)
|
002
|
SUB #15
|
241015
|
Сравнение с границей — (х = -15)
Если число меньше -15 (≤ -15) продолжится цикл
|
003
|
JNS 10
|
140010
|
Переход по положительной разности
|
004
|
SUB #50
|
341050
|
Сравнение с границей — (х = -15)
Если число больше -50 (-50 ≤) продолжится цикл
|
005
|
JNS 10
|
140010
|
Переход по положительной разности
|
006
|
RD 16
|
210016
|
Число = 16
|
007
|
ADD 10
|
230014
|
Сложение чисел 16 и 10
|
008
|
WR 31
|
220031
|
Запись результата в ОЗУ(ОЗО): 31 ячейка
|
009
|
RD 1000
|
211000
|
Число = 1000
|
010
|
DIV 31
|
260031
|
Разделить на число с ячейки 31 (16+11)
|
011
|
JMP 20
|
100020
|
Переход на вывод результата
|
012
|
RD 30
|
210030
|
Вычисления по второй формуле
|
013
|
OUT
|
020000
|
Вывод результата
|
014
|
HLT
|
090000
|
Стоп
|
PC
|
Асс
|
М(20)
|
М(31)
|
PC
|
Асс
|
М(20)
|
М(31)
|
000
|
000000
|
000000
|
000000
|
007
|
000000
|
|
|
001
|
|
|
|
008
|
090000
|
|
|
002
|
|
|
|
009
|
|
|
090000
|
003
|
100015
|
000000
|
000000
|
010
|
000000
|
|
|
004
|
100030
|
000000
|
000000
|
011
|
|
|
090000
|
005
|
|
|
|
020
|
000000
|
|
|
006
|
100030
|
|
|
031
|
000000
|
|
000000
|
Do'stlaringiz bilan baham: |