- •Лабораторная работа №10. Архитектура эвм и система команд. Вычисление значения выражения с применением различных способов адресации
- •Основные теоретические положения:
- •Понятие программы
- •Типы адресации
- •Система команд
- •Программно-доступные регистры и флаги:
- •Системные регистры и флаги:
- •Задание к работе
- •Запишите в озу программу, состоящую из 5 команд (из своего варианта). Команды разместите в ячейках памяти.
- •Содержание отчёта:
- •Контрольные вопросы:
- •Список литературы
Программно-доступные регистры и флаги:
Асс — аккумулятор;
PC — счетчик адреса команды, содержащий адрес текущей команд;
SP — указатель стека, содержащий адрес верхушки стека;
RB — регистр базового адреса, содержащий базовый адрес;
RA — регистр адреса, содержащий исполнительный адрес при кос ной адресации;
IR — входной регистр;
OR — выходной регистр;
I — флаг разрешения прерываний.
Системные регистры и флаги:
DR — регистр данных АЛУ, содержащий второй операнд;
MDR — регистр данных ОЗУ;
MAR — регистр адреса ОЗУ;
RDR — регистр данных блока РОН;
RAR — регистр адреса блока РОН;
CR — регистр команд, содержащий поля:
СОР — код операции;
ТА — тип адресации;
ADR — адрес или непосредственный операнд;
Z — флаг нулевого значения Асс;
S — флаг отрицательного значения Асс;
OV — флаг переполнения.
Задание к работе
Дана последовательность мнемокодов, которую необходимо преобразовать в машинные коды, занести в ОЗУ ЭВМ, выполнить в режиме Шаг и зафиксировать изменение состояний программно-доступных объектов ЭВМ.
Запишите следующую программу в окно Текст программы
Таблица 26 Пример программы
-
Коды
Программа
Действие
21 1 020
22 0 030
23 0 005
22 2 030
12 0 002
rd #20
wr 30
add #5
wr @30
JNZ 002
Чтение числа 20
Запись ячейки 30
Сложение числа 5
Чтение адреса в ячейки 30
Переход если не 0
В меню Вид выберите Программа, нажмите кнопку Компилировать
Выполняя команду Шаг фиксируем изменения программно-доступных объектов (Acc, ячейки ОЗУ 020 и 030) в таблице 27 Содержание регистров:
Таблица 27 Содержание регистров для задачи 1
PC |
Acc |
M(30) |
M(20) |
000 |
000000 |
000000 |
000000 |
001 |
000020 |
|
|
002 |
|
000020 |
|
003 |
000025 |
|
|
004 |
|
|
000025 |
002 |
|
|
|
003 |
000030 |
|
|
004 |
|
|
000030 |
В тетради заполните столбец Действие для каждой используемой команды программы.
Нарисуйте алгоритм работы программы.
Запишите в озу программу, состоящую из 5 команд (из своего варианта). Команды разместите в ячейках памяти.
При необходимости установить начальное значение в устройство ввода IR.
Определить те программно-доступные объекты ЭВМ, которые будут изменяться при выполнении этих команд.
Выполнить в режиме Шаг введенную последовательность команд, фиксируя изменения значений объектов, определенных в п. 3.1.3, в таблице 27. Содержание регистров, по примеру:
Таблица 28 Содержание регистров для задачи 2
PC |
Acc |
|
|
000 |
|
|
|
001 |
|
|
|
002 |
|
|
|
003 |
|
|
|
Если в программе образуется цикл, необходимо просмотреть не более двух повторений каждой команды, входящей в тело цикла.
Таблица 29 Задание для выполнения
Вариант № |
IR |
Команда 1 |
Команда 2 |
Команда 3 |
Команда 4 |
Команда 5 |
1 |
0000007 |
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 |
Напишите машинные коды команд, соответствующие варианту задания.
Коды |
Программа |
Действие |
||||
21 1 017 24 1 009 22 0 016 22 2 016 14 0 001 |
RD #17 SUB #9 WR 16 WR @16 JNS 001 |
Чтение числа 17 Вычитание числа 9 Чтение адреса ячейки 16 Чтение числа адрес которого в ячейки 16 Переход если положительное |
||||
PC |
Acc |
M(16) |
M(8) |
|
||
000 |
000000 |
000000 |
000000 |
|
||
001 |
000017 |
|
|
|
||
002 |
000008 |
|
|
|
||
003 |
|
000008 |
|
|
||
004 |
|
|
000008 |
|
||
001 |
|
|
|
|
||
002 |
100001 |
|
|
|
||
003 |
|
100001 |
|
|
||
004 |
|
|
|
|
||
