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