Для решения с помощью ЭВМ некоторой задачи должна быть разработана программа. Программа на языке ЭВМ представляет собой последовательность команд. Код каждой команды определяет выполняемую операцию, тип адресации и адрес. Выполнение программы, записанной в памяти ЭВМ, осуществляется последовательно по командам в порядке возрастания адресов команд или в порядке, определяемом командами передачи управления.
Для того чтобы получить результат выполнения программы, пользователь должен:
· ввести программу в память ЭВМ;
· определить, если это необходимо, содержимое ячеек ОЗУ и РОН, содержащих исходные данные, а также регистров IR и ВR;
· установить в РС стартовый адрес программы;
· перевести модель в режим Работа.
Каждое из этих действий выполняется посредством интерфейса модели, описанного в приложении Ввод программы может осуществляться как в машинных кодах непосредственно в память модели, так и в мнемокодах в окно Текст программыс последующим ассемблированием.
Цель настоящей лабораторной работы — знакомство с интерфейсом модели ЭВМ, методами ввода и отладки программы, действиями основных классов команд и способов адресации. Для этого необходимо ввести в память ЭВМ и выполнить в режиме Шагнекоторую последовательность команд (определенную вариантом задания) и зафиксировать все изменения на уровне программно-доступных объектов ЭВМ, происходящие при выполнении этих команд.
Команды в память учебной ЭВМ вводятся в виде шестиразрядных десятичных чисел
В настоящей лабораторной работе будем программировать ЭВМ в машинных кодах.
Пример 1
Дана последовательность мнемокодов, которую необходимо преобразовать в машинные коды, занести в ОЗУ ЭВМ, выполнить в режиме Шаг и зафиксировать изменение состояний программно-доступных объектов ЭВМ (табл. 1).
Таблица 1.Команды и коды
Последовательность | Значения | ||||
Команды | RD#20 | WR30 | ADD #5 | WR@30 | JNZ 002 |
Коды | 21 1 020 | 22 0 030 | 23 1 005 |
Введем полученные коды последовательно в ячейки ОЗУ, начиная с адреса 000. Выполняя команды в режиме Шаг, будем фиксировать изменения программно-доступных объектов (в данном случае это Асc, РС и ячейки ОЗУ 020 и 030) в табл.2.
Таблица 2.Содержимое регистров
РС | Асе | М(30) | М(20) | РС | Асе | М(30) | М(20) |
Выполнение работы
1.Ознакомиться с архитектурой ЭВМ
2. Записать в ОЗУ "программу", состоящую из пяти команд — варианты задания выбрать из табл. 3. Команды разместить в последовательных ячейках памяти.
3. При необходимости установить начальное значение в устройство ввода IR.
4. Определить те программно-доступные объекты ЭВМ, которые будут изменяться при выполнении этих команд.
5. Выполнить в режиме Шагвведенную последовательность команд, фиксируя изменения значений объектов, определенных в таблице (см.
форму табл.2).
6. Если в программе образуется цикл, необходимо просмотреть не более двух повторений каждой команды, входящей в тело цикла.
Задание 2
Цель работы
Программирование разветвляющегося процесса
Выполнение лабораторной работы
Для реализации алгоритмов, пути в которых зависят от исходных данных, используют команды условной передачи управления.
Пример 1
В качестве примера рассмотрим программу вычисления функции
(х-11)2-125, при х≥6,
х2 +72*-6400 |
У , при x<16,
-168
причем х вводится с устройства ввода IR, результат у выводится на OR. Граф-схема алгоритма решения задачи показана на рис. 1.
![]() |
Рис. 1.Граф-схема алгоритма
данной лабораторной работе используются двухсловные команды с непосредственной адресацией, позволяющие оперировать отрицательными числами и числами по модулю, превышающие 999, в качестве непосредственного операнда.
Оценив размер программы примерно в 20—25 команд, отведем для области данных ячейки ОЗУ, начиная с адреса 030. Составленная программа с комментариями представлена в виде табл. 1.
Таблица 1.Пример программы
Адрес | Команда | Примечание | |
Мнемокод | Код | ||
IN | 01 0 000 | Ввод х | |
WR 30 | 22 0 030 | Размещение х в ОЗУ(ОЗО) | |
SUB #16 | 24 1 016 | Сравнение с границей — (х — 16) | |
JS 010 | 13 0 010 | Переход по отрицательной разности | |
RD 30 | 21 0 030 | Вычисления по первой формуле | |
SUB #11 | 24 1 011 | ||
WR 31 | 22 0 031 | ||
MUL 31 | 25 0 03 1 | ||
SUB #125 | 24 1 125 | ||
JMP 020 | 10 0 020 | Переход на вывод результата | |
RD 30 | 21 0 030 | Вычисления по второй формуле | |
MUL 30 | 25 0 030 | ||
WR 31 | 22 0 031 | ||
RD 30 | 21 0 030 | ||
MUL #72 | 25 1 072 | ||
ADD 31 | 23 0 031 | ||
ADI 10640000 | 43 0 000 | ||
DIVI | 46 0 000 | ||
ОUT | 02 0 000 | Вывод результата | |
HLT | 09 0 000 | Стоп |
Задание 1
1. Разработать программу вычисления и вывода значения функции:
y = |Fi-(x), при х ≥ а,
Fj-(x), при х < а,
для вводимого из IR значения аргумента х. Функции и допустимые пределы изменения аргумента приведены в табл. 2, варианты заданий — в табл. 3.
2. Исходя из допустимых пределов изменения аргумента функций (табл. 2) и значения параметра а для своего варианта задания (табл. 3) выделить на числовой оси Ох области, в которых функция у вычисляется по представленной в п. 1 формуле, и недопустимые значения аргумента. На
недопустимых значениях аргумента программа должна выдавать на OR максимальное отрицательное число: 199 999.
3. Ввести текст программы в окно Текст программы,при этом возможен набор и редактирование текста непосредственно в окне Текст программыили загрузка текста из файла, подготовленного в другом редакторе.
4. Ассемблировать текст программы, при необходимости исправить синтаксические ошибки.
5. Отладить программу. Для этого:
а) записать в IR значение аргумента х > а (в области допустимых значений);
б) записать в РС стартовый адрес программы;
в) проверить правильность выполнения программы (т. е. правильность результата и адреса останова) в автоматическом режиме. В случае наличия ошибки выполнить пп. 5, г и 5, д; иначе перейти к п. 5, е;
г) записать в РС стартовый адрес программы;
д)наблюдая выполнение программы в режиме Шаг, найти команду, являющуюся причиной ошибки; исправить ее; выполнить
пп. 5, а — 5, в;
е) записать в IR значение аргумента х < а (в области допустимых значений); выполнить пп. 5, б и 5, в;
ж) записать в IR недопустимое значение аргумента х и выполнить пп. 5, б и 5, в.
6. Для выбранного допустимого значения аргумента х наблюдать выполнение отлаженной программы в режиме Шаг и записать в форме табл. 2 содержимое регистров ЭВМ перед выполнением каждой команды.
Таблица 2.Содержимое регистров
РС | Асс | М(30) | М(20) | РС | Асе | М(30) | М(20) |
Таблица 3.Функции
K | Fk(x) | k | Fk(x) |
x + 17; 2≤х≤12 1-х | ( x + 2)² ; 50≤x≤75 | ||
(х + 3)2 ; 1≤x≤50 x | 6. | 2x² +17; 1≤x≤30 х | |
1000 ; 50≤x≤15 х + 10 | x² +2x; 50≤x≤50 х | ||
4 | (х + 3);³ ; 20≤x≤20 | 8100 ; 1≤x≤90 х² |
Таблица 4.Варианты задания 1
Номер варианта | i | j | а | Номер варианта | i | j | а |
-20 | |||||||
Содержание отчета
Отчет о лабораторной работе должен содержать следующие разделы:
1.Формулировка варианта задания.
2. Граф-схема алгоритма решения задачи.
3. Размещение данных в ОЗУ.
4. Программа в форме табл. 1
5. Последовательность состояний регистров ЭВМ при выполнении программы в режиме Шаг для одного значения аргумента.
6. Результаты выполнения программы для нескольких значений аргумента, выбранных самостоятельно.
Контрольные вопросы
1. Что такое система команд ЭВМ?
2. Какие способы адресации использованы в модели ЭВМ? В чем отличие между ними?
3. Как просмотреть и, при необходимости, отредактировать содержимое ячейки памяти?
4. Какие способы адресации операндов применяются в командах ЭВМ?
5. Как работает механизм косвенной адресации?
6. Какая ячейка будет адресована в команде с косвенной адресацией через ячейку 043, если содержимое этой ячейки равно 102 347?
7. Как работают команды передачи управления?
8. Что входит в понятие "отладка программы"?
9. Какие способы отладки программы можно реализовать в модели?
Лабораторная работа 4
Дата: 2016-10-02, просмотров: 944.