Учебная ЭВМ может находится в одном из двух состояний: Останов и Работа.
В состояние Работа ЭВМ переходит под действием команд Пуск или Шаг. Команда Пуск запускает выполнение программы, записанной в ОЗУ, в автоматическом режиме до команды HLT или точки останова. Программа выполняется по командам, начиная с ячейки ОЗУ, на которую указывает PC, причем изменение состояний объектов модели отображается в окнах обозревателей.
В состояние Останов ЭВМ переходит по действию команды Стоп или автоматически в зависимости от установленного режима работы.
Команда Шаг, в зависимости от установленного режима работы, запускает выполнение одной команды или одной микрокоманды (если установлен Режим микрокоманд), после чего переходит в состояние Останов.
В состоянии Останов допускается просмотр и модификация объектов модели: регистров процессора, ячеек ОЗУ, устройств ввода/вывода.
Интерфейс пользователя
В программной модели учебной ЭВМ использован стандартный интерфейс Windows, реализованный в нескольких окнах.
Основное окно Модель учебной ЭВМ содержит основное меню и кнопки на панели управления. В рабочее поле окна выводятся сообщения о функционировании системы в целом. Эти сообщения группируются в файле logfaile.txt (по умолчанию), сохраняются на диске и могут быть проанализированы после завершения сеанса работы с моделью.
Команды меню Вид открывают окна соответствующих обозревателей, описанные далее.
Команды меню Работа позволяют запустить программу в автоматическом (команда Пуск) или шаговом (команда Шаг) режиме, остановить выполнение программы (команда Стоп). Эти команды могут выполняться при нажатии соответствующих одноименных кнопок на панели инструментов основного окна.
Окно Процессор (рис. 2.4) обеспечивает доступ ко всем регистрам и флагам процессора.
Программно-доступные регистры и флаги:
• Acc – аккумулятор;
• PC – счетчик адреса команды, содержащий адрес текущей команды;
• SP – указатель стека, содержащий адрес верхушки стека;
• RA – регистр адреса, содержащий исполнительный адрес при косвенной адресации;
• RB – регистр базового адреса, содержащий базовый адрес;
• IR – входной регистр;
• OR – выходной регистр;
• I – флаг разрешения прерываний.
Рис. 2.4. Окно Процессор
Системные регистры и флаги:
• DR – регистр данных АЛУ, содержащий второй операнд;
• MDR – регистр данных ОЗУ;
• MAR – регистр адреса ОЗУ;
• RDR – регистр данных блока РОН;
• RAR – регистр адреса блока РОН;
• CR – регистр команд, содержащий поля:
COP – код операции;
TA – тип адресации;
ADR – адрес или непосредственный операнд;
• Z – флаг нулевого значения Acc;
• S – флаг отрицательного значения Acc;
• OV – флаг переполнения.
Регистры Acc, DR, OR, IR, CR и все ячейки ОЗУ и РОН имеют длину 6 десятичных разрядов, регистры PC, SP, RA и RB – 3 разряда. В окне процессор отражаются текущие значения регистров и флагов, причем в состоянии Останов все регистры, включая регистры блока РОН, и флаги (кроме флага I) доступны для непосредственного редактирования.
Элементы управления окна Процессор включают меню и кнопки, вызывающие команды: Сохранить, Загрузить, Reset, Reset R 0- R 9. Команды Сохранить, Загрузить позволяют сохранить текущее значение регистров и флагов процессора в файле и восстановить состояние процессора из файла. Команда Reset и кнопка R устанавливают все регистры процессора в начальное (нулевое) значение. Команда Reset R 0- R 9 очищает только регистры блока РОН.
Окно Память (рис. 2.5) отражает текущее состояние ячеек ОЗУ. В этом окне допускается редактирование содержимого ячеек, кроме того предусмотрена возможность выполнения пяти команд: Сохранить, Загрузить, Перейти к, Вставить, Убрать.
Рис. 2.5. Окно Память
Команды Сохранить, Загрузить сохраняют в файле текущее состояние ОЗУ и восстанавливают это состояние из выбранного файла.
Команда Перейти к открывает диалоговое окно, позволяющее перейти на заданную ячейку ОЗУ.
Команда Убрать открывает диалог, в котором указывается диапазон ячеек с m по n. Содержимое ячеек в этом диапазоне теряется, а содержимое ячеек [(n + 1): 999] перемещается в соседние ячейки с меньшими адресами. Освободившиеся ячейки с адресами 999, 998, … заполняются нулями.
Команда Вставить, позволяющая задать номера ячеек, перемещает содержимое всех ячеек, начиная от m -й на n – m позиций в направлении больших адресов, ячейки заданного диапазона [ n: m ] заполняются нулями, а содержимое последних ячеек памяти теряется.
Окно Текст программы (рис. 2.6) содержит стандартное поле текстового редактора, в котором можно редактировать тексты, загружать в него текстовые файлы и сохранять подготовленный текст в виде файла.
Рис. 2.6. Окно Текст программы
Меню Файл содержит следующие команды:
• Новая – открывает новый сеанс редактирования;
• Загрузить – открывает стандартный диалог загрузки файла в окно редактора;
• Сохранить – сохраняет файл под текущим именем;
• Сохранить как – открывает стандартный диалог сохранения файла;
• Вставить – позволяет вставить выбранный файл в позицию курсора.
Все перечисленные программы, кроме последней, дублированы кнопками на панели инструментов окна. На той же панели присутствует еще одна кнопка – Компилировать, которая запускает процедуру ассемблирования текста в поле редактора. Ту же процедуру можно запустить из меню Работа.
Команда Адрес вставки позволяет задать адрес ячейки ОЗУ, начиная с которой программа будет размещаться в памяти. По умолчанию этот адрес принят равным 0.
Ниже области редактирования в строку состояния выводится позиция текущей строки редактора – номер строки, в которой находится курсор.
В случае обнаружения синтаксических ошибок в тексте программы в окно сообщений выводятся диагностические сообщения процесса компиляции, и запись в память кодов не производится. После исправления ошибок и повторной компиляции выдается сообщение об отсутствии ошибок, о расположении и размере области памяти, занятой под ассемблированную программу.
Набор текста программы производится по стандартным правилам языка ассемблера. В каждой строке может содержаться метка, одна команда и комментарий. Метка отделяется от команды двоеточием, символы после знака «точка с запятой» до конца строки игнорируются компилятором и могут рассматриваться как комментарии. Строка может начинаться с; и, следовательно, содержать только комментарии.
Окно Программа (рис 2.7.) отображает таблицу, имеющую 300 строк и 4 столбца. Каждая строка таблицы соответствует дизассемблированной ячейке ОЗУ. В первом столбце может помещаться указатель à на текущую команду (текущее значение PC) и точка останова – красная заливка ячейки. Второй столбец содержит адрес ячейки ОЗУ, третий – дизассемблированный мнемокод, четвертый – машинный код команды.
Окно Программа позволяет наблюдать процесс прохождения программы. В этом окне ничего нельзя редактировать. Органы управления окна позволяют сохранить содержимое окна в виде текстового файла, выбрать начальный адрес области ОЗУ, которая будет дизассемблироваться (размер области постоянный – 300 ячеек), а также установить/снять точку останова. Последнее может быть сделано тремя способами: командой Точка останова из меню Работа, кнопкой на панели инструментов или двойным щелчком мыши в первой ячейке соответствующей строки.
Рис. 2.7. Окно Программа
Загрузить что-либо окно Программа нельзя. Сохраненный текстовый asm-файл можно загрузить в окно Текст программы, ассемблировать его и тогда дизассемблированное значение заданной области памяти автоматически появится в окне Программа. Такую процедуру удобно использовать, если программа изначально пишется или редактируется непосредственно в памяти в машинных кодах.
Начальный адрес области дизассемблирования задается в диалоге командой Начальный адрес меню Работа.
ЛАБОРАТОРНЫЕ РАБОТЫ
3.1. Лабораторная работа № 1.
Основы работы с программной моделью учебной ЭВМ
Цель работы
Цель работы – ознакомление с интерфейсом модели учебной ЭВМ, методами ввода и отладки программы, действиями основных классов команд и способов адресации.
Общие положения
Для решения с помощью ЭВМ некоторой задачи должна быть разработана программа, представляющая собой последовательность команд на языке ЭВМ. Код каждой команды определяет выполняемую операцию, тип адресации и адрес. Выполнение программы, записанной в памяти ЭВМ осуществляется последовательно по командам в порядке возрастания адресов команд или в порядке определяемом командами передачи управления.
Для того чтобы получить результат выполнения программы пользователь должен осуществить следующие действия:
1) ввести программу в память ЭВМ;
2) определить, если это необходимо содержимое ячеек ОЗУ и РОН, содержащих исходные данные;
3) установить в PC стартовый адрес программы;
4) перевести модель в режим работа.
Каждое из этих действий выполняется посредством интерфейса модели, описанного в подразделе 2.5. Ввод программы может осуществляться как в машинных кодах непосредственно в память модели, так и в мнемокодах в окно Текст программы с последующим компилированием.
Разнообразие типов данных, форм их представления и действий, которые необходимы для обработки информации и управления ходом вычислений, порождают необходимость использования различных команд – набора команд. Каждая ЭВМ имеет собственный набор команд, называемый системой команди обладающий двумя свойствами – функциональной полнотой и эффективностью.
Функциональная полнота системы команд – это достаточность системы команд для описания любого алгоритма.
Эффективность системы команд – степень соответствия системы команд назначению ЭВМ, т. е. классу алгоритмов для выполнения которых предназначается данная ЭВМ, а также требованиям к производительности ЭВМ.
Система команд ЭВМ характеризуется форматами команд и способами адресации.
Под форматом команды следует понимать длину команды, количество, размер, положение, назначение и способ кодировки ее полей.
Способ адресации определяет, каким образом следует использовать информацию, размещенную в поле адреса команды.