Лабораторная 2: Архитектура ЭВМ и система команд

Общие положения
Для решения с помощью ЭВМ некоторой задачи должна быть разработана программа. Программа на языке ЭВМ представляет собой последовательность команд. Код каждой команды определяет выполняемую операцию, тип адресации и адрес. Выполнение программы, записанной в памяти ЭВМ, осуществляется последовательно по командам в порядке возрастания адресов команд или в порядке, определяемом командами передачи управления.

Для того чтобы получить результат выполнения программы, пользователь должен:
— ввести программу в память ЭВМ;
— определить, если это необходимо, содержимое ячеек ОЗУ и РОН, содержащих исходные данные, а также регистров 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. Какие команды относятся к классу передачи управления?