Общие положения
Для решения с помощью ЭВМ некоторой задачи должна быть разработана программа. Программа на языке ЭВМ представляет собой последовательность команд. Код каждой команды определяет выполняемую операцию, тип адресации и адрес. Выполнение программы, записанной в памяти ЭВМ, осуществляется последовательно по командам в порядке возрастания адресов команд или в порядке, определяемом командами передачи управления.
Для того чтобы получить результат выполнения программы, пользователь должен:
— ввести программу в память ЭВМ;
— определить, если это необходимо, содержимое ячеек ОЗУ и РОН, содержащих исходные данные, а также регистров IR и BR;
— установить в PC стартовый адрес программы;
— перевести модель в режим Работа.
Каждое из этих действий выполняется посредством интерфейса модели, описанного в главе 8. Ввод программы может осуществляться как в машинных кодах непосредственно в память модели, так и в мнемокодах в окно Текст программы с последующим ассемблированием.
Цель настоящей лабораторной работы — знакомство с интерфейсом модели ЭВМ, методами ввода и отладки программы, действиями основных классов команд и способов адресации. Для этого необходимо ввести в память ЭВМ и выполнить в режиме Шаг некоторую последовательность команд (определенную вариантом задания) и зафиксировать все изменения на уровне программно-доступных объектов ЭВМ, происходящие при выполнении этих команд.
Команды в память учебной ЭВМ вводятся в виде шестиразрядных десятичных чисел (см. форматы команд на рис. 8.3, коды команд и способов адресации в табл. 8.2—8.4).
В настоящей лабораторной работе будем программировать ЭВМ в машинных кодах.
Пример 1
Дана последовательность мнемокодов, которую необходимо преобразовать в машинные коды, занести в ОЗУ ЭВМ, выполнить в режиме Шаг и зафиксировать изменение состояний программно-доступных объектов ЭВМ (табл. 1).
Таблица 1. Команды и коды
Последовательность | Значения | ||||
Команды | RD#20 | WR30 | ADD #5 | WR@30 | JNZ 002 |
Коды | 21 1 020 | 22 0030 | 23 1 005 | 22 2 030 | 120002 |
Введем полученные коды последовательно в ячейки ОЗУ, начиная с адреса 000. Выполняя команды в режиме Шаг, будем фиксировать изменения программно-доступных объектов (в данном случае это Асc, PC и ячейки ОЗУ 020 (М20) и 030 (М30)) в табл. 2.
Таблица 2. Содержимое регистров
PC |
Acc | M(30) | M(20) |
000 |
000000 | 000000 |
000000 |
001 |
000020 |
||
002 |
000020 |
||
003 |
000025 | ||
004 |
000025 |
||
002 | |||
003 |
000030 |
||
004 |
000030 |
Задание 1
1. Ознакомиться с архитектурой ЭВМ.
2. Записать в ОЗУ «программу», состоящую из пяти команд— варианты задания выбрать из табл. 3. Команды разместить в последовательных ячейках памяти.
3. При необходимости установить начальное значение в устройство ввода IR.
4. Определить те программно-доступные объекты ЭВМ, которые будут изменяться при выполнении этих команд.
5. Выполнить в режиме Шаг введенную последовательность команд, фиксируя изменения значений объектов, определенных в п. 4, в таблице (см. форму табл. 2).
6. Если в программе образуется цикл, необходимо просмотреть не более двух повторений каждой команды, входящей в тело цикла.
Таблица 3. Варианты задания 1
№ | IR | Команда 1 | Команда 2 | Команда 3 | Команда 4 | Команда 5 |
1 | 000007 | IN | MUL #2 | WR 10 | WR @10 | JNS 001 |
2 | X | RD #17 | SUB #9 | WR 16 | WR @16 | JNS 001 |
3 | 100029 | IN | ADD #16 | WR 8 | WR @8 | JS 001 |
4 | X | RD #2 | MUL #6 | WR 11 | WR @11 | JNZ 00 |
5 | 000016 | IN | WR 8 | DIV #4 | WR @8 | JMP 002 |
6 | X | RD #4 | WR @11 | RD @11 | ADD #330 | JS 000 |
7 | 000000 | IN | WR 9 | RD @9 | SUB #1 | JS 001 |
8 | X | RD 4 | SUB #8 | WR 8 | WR @8 | JNZ 001 |
9 | 100005 | IN | ADD #12 | WR 10 | WR @10 | JS 004 |
10 | X | RD 4 | ADD #15 | WR 13 | WR @13 | JMP 001 |
11 | 000315 | IN | SUB #308 | WR 11 | WR @11 | JMP 001 |
12 | X | RD #988 | ADD #19 | WR 9 | WR @9 | JNZ 001 |
13 | 000017 | IN | WR 11 | ADD 11 | WR @11 | JMP 002 |
14 | X | RD #5 | MUL #9 | WR 10 | WR @10 | JNZ 001 |
Содержание отчета
Формулировка варианта задания.
1. Машинные коды команд, соответствующих варианту задания.
2. Результаты выполнения последовательности команд в форме табл. 2.
Контрольные вопросы
1. Из каких основных частей состоит ЭВМ и какие из них представлены в модели?
2. Что такое система команд ЭВМ?
3. Какие классы команд представлены в модели?
4. Какие действия выполняют команды передачи управления?
5. Какие способы адресации использованы в модели ЭВМ? В чем отличие между ними?
6. Какие ограничения накладываются на способ представления данных в модели ЭВМ?
7. Какие режимы работы предусмотрены в модели и в чем отличие между ними?
8. Как записать программу в машинных кодах в память модели ЭВМ?
9. Как просмотреть содержимое регистров процессора и изменить содержимое некоторых регистров?
10. Как просмотреть и, при необходимости, отредактировать содержимое ячейки памяти?
11. Как запустить выполнение программы в режиме приостановки работы после выполнения каждой команды?
12. Какие способы адресации операндов применяются в командах ЭВМ?
13. Какие команды относятся к классу передачи управления?