Для решения с помощью ЭВМ некоторой задачи должна быть разработана программа. Программа на языке ЭВМ представляет собой последовательность команд. Код каждой команды определяет выполняемую операцию, тип адресации и адрес. Выполнение программы, записанной в памяти ЭВМ, осуществляется последовательно по командам в порядке возрастания адресов команд или в порядке, определяемом командами передачи управления. Для того чтобы получить результат выполнения программы, пользователь должен: - ввести программу в память ЭВМ; - определить, если это необходимо, содержимое ячеек ОЗУ и РОН, содержащих исходные данные, а также регистров IR и BR; - установить в PC стартовый адрес программы; - перевести модель в режим Работа. Каждое из этих действий выполняется посредством интерфейса модели. Ввод программы может осуществляться как в машинных кодах непосредственно в память модели, так и в мнемокодах в окно Текст программы с последующим ассемблированием. Цель настоящей лабораторной работы - знакомство с интерфейсом модели ЭВМ, методами ввода и отладки программы, действиями основных классов команд и способов адресации. Для этого необходимо ввести в память ЭВМ и выполнить в режиме Шаг некоторую последовательность команд (определенную вариантом задания) и зафиксировать все изменения на уровне программно-доступных объектов ЭВМ, происходящие при выполнении этих команд. Команды в память учебной ЭВМ вводятся в виде шестиразрядных десятичных чисел. В данной лабораторной работе будем программировать ЭВМ в машинных кодах. ## Пример Дана последовательность мнемокодов, которую необходимо преобразовать в машинные коды, занести в ОЗУ ЭВМ, выполнить в режиме Шаг и зафиксировать изменение состояний программно-доступных объектов ЭВМ | Последовательность | Значения | | | | | | ------------------ | -------- | -------- | -------- | -------- | --------- | | Команды | `RD#20` | `WR30` | `ADD #5` | `WR@30` | `JNZ 002` | | Коды | 21 1 020 | 22 0 030 | 23 1 005 | 22 2 030 | 12 0 002 | Введем полученные коды последовательно в ячейки ОЗУ, начиная с адреса 000. Выполняя команды в режиме Шаг, будем фиксировать изменения программно-доступных объектов (в данном случае это Асс, PC и ячейки ОЗУ 020 и 030). | PC | Acc | M(30) | M(20) | | --- | ------ | ------ | ------ | | 000 | 000000 | 000000 | 000000 | | 001 | 000020 | | | | 002 | | 000020 | | | 003 | 000025 | | | | 004 | | | 000025 | | 002 | | | | | 003 | 000030 | | | | 004 | | | 000030 | ## Задание 1. Ознакомиться с архитектурой ЭВМ. 2. Записать в ОЗУ "программу", состоящую из пяти команд. Команды разместить в последовательных ячейках памяти. 3. При необходимости установить начальное значение в устройство ввода IR. 4. Определить те программно-доступные объекты ЭВМ, которые будут изменяться при выполнении этих команд. 5. Выполнить в режиме Шаг введенную последовательность команд, фиксируя изменения значений объектов, определенных в п. 4, в таблице. 6. Если в программе образуется цикл, необходимо просмотреть не более двух повторений каждой команды, входящей в тело цикла. #### Вариант | № | IR | Команда 1 | Команда 2 | Команда 3 | Команда 4 | Команда 5 | | --- | --- | --------- | --------- | --------- | --------- | --------- | | 12 | X | `RD #988` | `ADD #19` | `WR9` | `WR @9` | `JNZ 001` |