Интерфейс пользователя
В программной модели учебной ЭВМ использован стандартный интерфейс
Windows, реализованный в нескольких окнах. Основное окно модели Модель учебной ЭВМсодержит главное меню и кнопки на панели управления. В рабочее поле окна выводятся сообщения о функционировании системы в целом. Эти сообщения группируются в файле logfile.txt (по умолчанию), сохраняются на диске и могут быть проанализированы после завершения сеанса работы с моделью.
Меню содержит следующие пункты и команды:
Файл:
• неактивные команды;
• Выход;
Вид:
• Показать все;
• Скрыть все;
• Процессор;
• Микрокомандный уровень;
• Память;
• Кэш-память;
• Программа;
• Текст программы;
Внешние устройства:
• Менеджер ВУ;
• окна подключенных ВУ;
Работа:
• Пуск;
• Стоп;
• Шаг;
• Режим микрокоманд;
• Кэш-память;
• Настройки.
Команды меню Видоткрывают окна соответствующих обозревателей, описанные далее. Менеджер внешних устройств позволяет подключать/отключать внешние устройства, предусмотренные в системе. Команда вызова менеджера внешних устройств выполняется при нажатии кнопки на панели инструментов. Команды меню Работапозволяют запустить программу в автоматическом (команда Пуск) или шаговом (команда Шаг) режиме, остановить выполнение программы в модели процессора (команда Стоп). Эти команды могут выполняться при нажатии соответствующих одноименных кнопок на панели инструментов основного окна. Команда Режим микрокомандвключает/выключает микрокомандный режим работы процессора, а команда Кэш-памятьподключает/отключает
в системе модель этого устройства. Команда Настройкиоткрывает диалоговое окно Параметры системы, позволяющее установить задержку реализации командного цикла (при выполнении программы в автоматическом режиме), а также установить параметры файла logfile.txt, формируемого системой и записываемого на диск.
Окна основных обозревателей системы.
Окно Процессор.
Окно Процессор(рис. 2) обеспечивает доступ ко всем регистрам и флагам процессора.
Рис. 2.Окно Процессор
Программно-доступные регистры и флаги:
• Асс — аккумулятор;
• PC — счетчик адреса команды, содержащий адрес текущей команды;
• SP — указатель стека, содержащий адрес верхушки стека;
• RB — регистр базового адреса, содержащий базовый адрес;
• RA — регистр адреса, содержащий исполнительный адрес при косвенной адресации;
• IR — входной регистр;
• OR — выходной регистр;
• I — флаг разрешения прерываний.
Системные регистры и флаги:
• DR — регистр данных АЛУ, содержащий второй операнд;
• MDR — регистр данных ОЗУ;
• MAR — регистр адреса ОЗУ;
• RDR — регистр данных блока РОН;
• RAR — регистр адреса блока РОН;
• CR — регистр команд, содержащий поля:
◊ СОР — код операции;
◊ ТА — тип адресации;
◊ ADR — адрес или непосредственный операнд;
• Z — флаг нулевого значения Асс;
• S — флаг отрицательного значения Асс;
• OV — флаг переполнения.
Регистры Асс, DR, IR, OR, CR и все ячейки ОЗУ и РОН имеют длину 6 десятичных разрядов, регистры PC, SP, RA и RB — 3 разряда. В окне Процессоротражаются текущие значения регистров и флагов, причем в состоянии Остановвсе регистры, включая регистры блока РОН, и флаги (кроме флага I) доступны для непосредственного редактирования.
Элементы управления окна Процессорвключают меню и кнопки, вызывающие команды:
Сохранить;
Загрузить;
Reset;
Reset R0-R9(только команда меню Работа).
Команды Сохранитьи Загрузитьпозволяют сохранить текущее значение регистров и флагов процессора в файле и восстановить состояние процессора из файла. Команда Resetи кнопка Rустанавливают все регистры (в т. ч. блок РОН) в начальное (нулевое) значение. Содержимое ячеек памяти при этом не меняется. Выполняемая лишь из меню Работакоманда Reset R0-R9очищает только регистры блока РОН.
Окно Память
Окно Память(рис. 3) отражает текущее состояние ячеек ОЗУ. В этом окне допускается редактирование содержимого ячеек, кроме того, предусмотрена возможность выполнения (через меню или с помощью кнопок панели инструментов) пяти команд: Сохранить, Загрузить, Перейти к, Вставить, Убрать.
Команды Сохранить, Загрузитьво всех окнах, где они предусмотрены, работают одинаково — сохраняют в файле текущее состояние объекта (в данном случае памяти) и восстанавливают это состояние из выбранного файла, причем файл в каждом окне записывается по умолчанию с характерным для этого окна расширением.
Команда Перейти коткрывает диалоговое окно, позволяющее перейти на
заданную ячейку ОЗУ.
Команда Убратьоткрывает диалог, в котором указывается диапазон ячеек
с m по n . Содержимое ячеек в этом диапазоне теряется, а содержимое ячеек
[ (n +1) : 999] перемещается в соседние ячейки с меньшими адресами. Освободившиеся ячейки с адресами 999, 998, ... заполняются нулями.
Рис. 3.Окно Память
Команда Вставить, позволяющая задать номера ячеек, перемещает содержимое всех ячеек, начиная от m-й на n − m позиций в направлении больших адресов, ячейки заданного диапазона [m : n ] заполняются нулями, а содержимое последних ячеек памяти теряется.
Окно Текст программы
Окно Текст программы(рис. 4) содержит стандартное поле текстового
редактора, в котором можно редактировать тексты, загружать в него текстовые файлы и сохранять подготовленный текст в виде файла.
Команды меню Файл:
Новая— открывает новый сеанс редактирования;
Загрузить— открывает стандартный диалог загрузки файла в окно редактора;
Сохранить— сохраняет файл под текущим именем;
Сохранить как— открывает стандартный диалог сохранения файла;
Вставить— позволяет вставить выбранный файл в позицию курсора.
Все перечисленные команды, кроме последней, дублированы кнопками на панели инструментов окна. На той же панели присутствует еще одна кнопка — Компилировать, которая запускает процедуру ассемблирования текста в поле редактора.
Ту же процедуру можно запустить из меню Работа. Команда Адрес вставкипозволяет задать адрес ячейки ОЗУ, начиная с которой программа будет размещаться в памяти. По умолчанию этот адрес принят равным 0.
Ниже области редактирования в строку состояния выводится позиция теку-
щей строки редактора — номер строки, в которой находится курсор.
В случае обнаружения синтаксических ошибок в тексте программы диагностические сообщения процесса компиляции выводятся в окно сообщений и запись в память кодов (даже безошибочного начального фрагмента программы) не производится.
Рис.4. Окно Текст Программы.
После исправления ошибок и повторной компиляции выдается сообщение об отсутствии ошибок, о расположении и размере области памяти, занятой под ассемблированную программу.
Набор текста программы производится по стандартным правилам языка ассемблера. В каждой строке может содержаться метка, одна команда и комментарий. Метка отделяется от команды двоеточием, символы после знака "точка с запятой" до конца строки игнорируются компилятором и могут рассматриваться как комментарии. Строка может начинаться с ; и, следовательно, содержать только комментарии.
Окно Программа
Окно Программа(рис. 5) отображает таблицу, имеющую 300 строк и
4 столбца. Каждая строка таблицы соответствует дизассемблированной ячейке ОЗУ. Второй столбец содержит адрес ячейки ОЗУ, третий — дизассемблированный мнемокод, четвертый — машинный код команды. В первом столбце может помещаться указатель -->на текущую команду (текущее значение PC) и точка останова — красная заливка ячейки.
Рис. 5.Окно Программа
Окно Программапозволяет наблюдать процесс прохождения программы. В этом окне ничего нельзя редактировать. Органы управления окна позволяют сохранить содержимое окна в виде текстового файла, выбрать начальный адрес области ОЗУ, которая будет дизассемблироваться (размер области постоянный — 300 ячеек), а также установить/снять точку останова. Последнее можно проделать тремя способами: командой Точка остановаиз меню Работа, кнопкой на панели инструментов или двойным щелчком мыши в первой ячейке соответствующей строки.
Характерно, что прочитать в это окно ничего нельзя. Сохраненный текстовый asm-файл можно загрузить в окно Текст программы, ассемблировать его и тогда дизассемблированное значение заданной области памяти автоматически появится в окне Программа. Такую процедуру удобно использовать, если программа изначально пишется или редактируется непосредственно в памяти в машинных кодах. Начальный адрес области дизассемблирования задается в диалоге командой Начальный адресменю Работа.
Практическая часть.
Разработка программы.
1. Формула для программы.
2. Разработка граф-схемы.
3. Разработка программного кода для учебной ЭВМ.
IN | Ввод X | |
WR 30 | Запись Х | |
SUB #1 | Сравнение с границей | |
ADD #13 | ||
JNS 05 | Переход по положительному результату | |
RD 30 | Считывание Х | |
MUL #17 | Сложение с 17 | |
WR 31 | Запись результата | |
RD 27 | Считывание 1 | |
SUB 30 | Вычитание Х | |
WR 33 | Запись результата | |
RD 31 | Считывание (Х + 17) | |
DIV 33 | Деление на (1 -Х) | |
OUT | Вывод результата | |
HLT | Стоп | |
4. Пошаговое считывание результатов с учебной ЭВМ.
1) IN
2) WR 030
3) SUB #001
4) ADD #013
5) JNS
6) RD 030
7) MUL #017
8) WR 031
9) RD 027
10) SUB 030
11) WR 033
12) RD 031
13) DIV 033
14) WR 034
15) OUT
16) HLT
Заключение.
В ходе выполнения курсовой работы мы изучили основные элементы и окна учебной ЭВМ, составили программу для выполнения уравнения с разветвляющимся процессом.
В теоретической части мы подробно описали все составляющие учебной ЭВМ: структуру, состояния и режимы работы и интерфейс. Теоретическая часть дает нам подробное описание всех частей учебной ЭВМ, что позволяет легко и быстро разобраться в ее работе.
В практической части мы составили код программы и скомпилировали его для дальнейшей работы с ним в учебной ЭВМ. Далее в ходе работы мы пошагово просмотрели и замерили состояния регистров учебной ЭВМ во время выполнения каждой команды программы. Благодаря этому мы можем отследить состояние каждого регистра во время выполнения каждой команды, составляющей нашу программу.
В итоге результатом проведения работы над курсовым проектом стала рабочая программа для учебной ЭВМ, а также полученный в ходе работы незаменимый опыт в работе с учебной ЭВМ.