Интерфейс пользователя

В программной модели учебной ЭВМ использован стандартный интерфейс

Windows, реализованный в нескольких окнах. Основное окно модели Модель учебной ЭВМсодержит главное меню и кнопки на панели управления. В рабочее поле окна выводятся сообщения о функционировании системы в целом. Эти сообщения группируются в файле logfile.txt (по умолчанию), сохраняются на диске и могут быть проанализированы после завершения сеанса работы с моделью.

Меню содержит следующие пункты и команды:

􀂈 Файл:

неактивные команды;

Выход;

􀂈 Вид:

Показать все;

Скрыть все;

Процессор;

Микрокомандный уровень;

Память;

Кэш-память;

Программа;

Текст программы;

􀂈 Внешние устройства:

Менеджер ВУ;

окна подключенных ВУ;

􀂈 Работа:

Пуск;

Стоп;

Интерфейс пользователя - student2.ruШаг;

Интерфейс пользователя - student2.ruРежим микрокоманд;

Кэш-память;

Настройки.

Команды меню Видоткрывают окна соответствующих обозревателей, описанные далее. Менеджер внешних устройств позволяет подключать/отключать внешние устройства, предусмотренные в системе. Команда вызова менеджера внешних устройств выполняется при нажатии кнопки на панели инструментов. Команды меню Работапозволяют запустить программу в автоматическом (команда Пуск) или шаговом (команда Шаг) режиме, остановить выполнение программы в модели процессора (команда Стоп). Эти команды могут выполняться при нажатии соответствующих одноименных кнопок на панели инструментов основного окна. Команда Режим микрокомандвключает/выключает микрокомандный режим работы процессора, а команда Кэш-памятьподключает/отключает

в системе модель этого устройства. Команда Настройкиоткрывает диалоговое окно Параметры системы, позволяющее установить задержку реализации командного цикла (при выполнении программы в автоматическом режиме), а также установить параметры файла logfile.txt, формируемого системой и записываемого на диск.

Интерфейс пользователя - student2.ru Окна основных обозревателей системы.

Окно Процессор.

Окно Процессор(рис. 2) обеспечивает доступ ко всем регистрам и флагам процессора.

Интерфейс пользователя - student2.ru

Рис. 2.Окно Процессор

􀂈 Программно-доступные регистры и флаги:

• Асс — аккумулятор;

• PC — счетчик адреса команды, содержащий адрес текущей команды;

• SP — указатель стека, содержащий адрес верхушки стека;

• RB — регистр базового адреса, содержащий базовый адрес;

• RA — регистр адреса, содержащий исполнительный адрес при косвенной адресации;

• IR — входной регистр;

• OR — выходной регистр;

• I — флаг разрешения прерываний.

Интерфейс пользователя - student2.ru 􀂈 Системные регистры и флаги:

• 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очищает только регистры блока РОН.

Интерфейс пользователя - student2.ru Окно Память

Окно Память(рис. 3) отражает текущее состояние ячеек ОЗУ. В этом окне допускается редактирование содержимого ячеек, кроме того, предусмотрена возможность выполнения (через меню или с помощью кнопок панели инструментов) пяти команд: Сохранить, Загрузить, Перейти к, Вставить, Убрать.

Команды Сохранить, Загрузитьво всех окнах, где они предусмотрены, работают одинаково — сохраняют в файле текущее состояние объекта (в данном случае памяти) и восстанавливают это состояние из выбранного файла, причем файл в каждом окне записывается по умолчанию с характерным для этого окна расширением.

Команда Перейти коткрывает диалоговое окно, позволяющее перейти на

заданную ячейку ОЗУ.

Команда Убратьоткрывает диалог, в котором указывается диапазон ячеек

с m по n . Содержимое ячеек в этом диапазоне теряется, а содержимое ячеек

[ (n +1) : 999] перемещается в соседние ячейки с меньшими адресами. Освободившиеся ячейки с адресами 999, 998, ... заполняются нулями.

Интерфейс пользователя - student2.ru

Рис. 3.Окно Память

Интерфейс пользователя - student2.ru Команда Вставить, позволяющая задать номера ячеек, перемещает содержимое всех ячеек, начиная от m-й на n − m позиций в направлении больших адресов, ячейки заданного диапазона [m : n ] заполняются нулями, а содержимое последних ячеек памяти теряется.

Окно Текст программы

Окно Текст программы(рис. 4) содержит стандартное поле текстового

редактора, в котором можно редактировать тексты, загружать в него текстовые файлы и сохранять подготовленный текст в виде файла.

Команды меню Файл:

􀂈 Новая— открывает новый сеанс редактирования;

􀂈 Загрузить— открывает стандартный диалог загрузки файла в окно редактора;

􀂈 Сохранить— сохраняет файл под текущим именем;

􀂈 Сохранить как— открывает стандартный диалог сохранения файла;

􀂈 Вставить— позволяет вставить выбранный файл в позицию курсора.

Все перечисленные команды, кроме последней, дублированы кнопками на панели инструментов окна. На той же панели присутствует еще одна кнопка — Компилировать, которая запускает процедуру ассемблирования текста в поле редактора.

Ту же процедуру можно запустить из меню Работа. Команда Адрес вставкипозволяет задать адрес ячейки ОЗУ, начиная с которой программа будет размещаться в памяти. По умолчанию этот адрес принят равным 0.

Ниже области редактирования в строку состояния выводится позиция теку-

щей строки редактора — номер строки, в которой находится курсор.

В случае обнаружения синтаксических ошибок в тексте программы диагностические сообщения процесса компиляции выводятся в окно сообщений и запись в память кодов (даже безошибочного начального фрагмента программы) не производится.

Интерфейс пользователя - student2.ru Интерфейс пользователя - student2.ru

Рис.4. Окно Текст Программы.

После исправления ошибок и повторной компиляции выдается сообщение об отсутствии ошибок, о расположении и размере области памяти, занятой под ассемблированную программу.

Набор текста программы производится по стандартным правилам языка ассемблера. В каждой строке может содержаться метка, одна команда и комментарий. Метка отделяется от команды двоеточием, символы после знака "точка с запятой" до конца строки игнорируются компилятором и могут рассматриваться как комментарии. Строка может начинаться с ; и, следовательно, содержать только комментарии.

Интерфейс пользователя - student2.ru Окно Программа

Окно Программа(рис. 5) отображает таблицу, имеющую 300 строк и

4 столбца. Каждая строка таблицы соответствует дизассемблированной ячейке ОЗУ. Второй столбец содержит адрес ячейки ОЗУ, третий — дизассемблированный мнемокод, четвертый — машинный код команды. В первом столбце может помещаться указатель -->на текущую команду (текущее значение PC) и точка останова — красная заливка ячейки.

Интерфейс пользователя - student2.ru

Рис. 5.Окно Программа

Окно Программапозволяет наблюдать процесс прохождения программы. В этом окне ничего нельзя редактировать. Органы управления окна позволяют сохранить содержимое окна в виде текстового файла, выбрать начальный адрес области ОЗУ, которая будет дизассемблироваться (размер области постоянный — 300 ячеек), а также установить/снять точку останова. Последнее можно проделать тремя способами: командой Точка остановаиз меню Работа, кнопкой на панели инструментов или двойным щелчком мыши в первой ячейке соответствующей строки.

Интерфейс пользователя - student2.ru Характерно, что прочитать в это окно ничего нельзя. Сохраненный текстовый asm-файл можно загрузить в окно Текст программы, ассемблировать его и тогда дизассемблированное значение заданной области памяти автоматически появится в окне Программа. Такую процедуру удобно использовать, если программа изначально пишется или редактируется непосредственно в памяти в машинных кодах. Начальный адрес области дизассемблирования задается в диалоге командой Начальный адресменю Работа.

Интерфейс пользователя - student2.ru Практическая часть.

Разработка программы.

1. Формула для программы.

Интерфейс пользователя - student2.ru

2. Разработка граф-схемы.

Интерфейс пользователя - student2.ru

Интерфейс пользователя - student2.ru 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 Стоп
     

Интерфейс пользователя - student2.ru Интерфейс пользователя - student2.ru

4. Пошаговое считывание результатов с учебной ЭВМ.

1) IN

Интерфейс пользователя - student2.ru

Интерфейс пользователя - student2.ru Интерфейс пользователя - student2.ru

2) WR 030

Интерфейс пользователя - student2.ru

Интерфейс пользователя - student2.ru

Интерфейс пользователя - student2.ru 3) SUB #001

Интерфейс пользователя - student2.ru

Интерфейс пользователя - student2.ru

Интерфейс пользователя - student2.ru 4) ADD #013

Интерфейс пользователя - student2.ru

Интерфейс пользователя - student2.ru

Интерфейс пользователя - student2.ru 5) JNS

Интерфейс пользователя - student2.ru

Интерфейс пользователя - student2.ru

Интерфейс пользователя - student2.ru 6) RD 030

Интерфейс пользователя - student2.ru

Интерфейс пользователя - student2.ru

Интерфейс пользователя - student2.ru 7) MUL #017

Интерфейс пользователя - student2.ru

Интерфейс пользователя - student2.ru

Интерфейс пользователя - student2.ru 8) WR 031

Интерфейс пользователя - student2.ru

Интерфейс пользователя - student2.ru

Интерфейс пользователя - student2.ru 9) RD 027

Интерфейс пользователя - student2.ru

Интерфейс пользователя - student2.ru

Интерфейс пользователя - student2.ru 10) SUB 030

Интерфейс пользователя - student2.ru

Интерфейс пользователя - student2.ru

Интерфейс пользователя - student2.ru 11) WR 033

Интерфейс пользователя - student2.ru

Интерфейс пользователя - student2.ru

Интерфейс пользователя - student2.ru 12) RD 031

Интерфейс пользователя - student2.ru

Интерфейс пользователя - student2.ru

Интерфейс пользователя - student2.ru 13) DIV 033

Интерфейс пользователя - student2.ru

Интерфейс пользователя - student2.ru

Интерфейс пользователя - student2.ru 14) WR 034

Интерфейс пользователя - student2.ru

Интерфейс пользователя - student2.ru

Интерфейс пользователя - student2.ru 15) OUT

Интерфейс пользователя - student2.ru

Интерфейс пользователя - student2.ru

Интерфейс пользователя - student2.ru 16) HLT

Интерфейс пользователя - student2.ru

Интерфейс пользователя - student2.ru

Интерфейс пользователя - student2.ru Заключение.

В ходе выполнения курсовой работы мы изучили основные элементы и окна учебной ЭВМ, составили программу для выполнения уравнения с разветвляющимся процессом.

В теоретической части мы подробно описали все составляющие учебной ЭВМ: структуру, состояния и режимы работы и интерфейс. Теоретическая часть дает нам подробное описание всех частей учебной ЭВМ, что позволяет легко и быстро разобраться в ее работе.

В практической части мы составили код программы и скомпилировали его для дальнейшей работы с ним в учебной ЭВМ. Далее в ходе работы мы пошагово просмотрели и замерили состояния регистров учебной ЭВМ во время выполнения каждой команды программы. Благодаря этому мы можем отследить состояние каждого регистра во время выполнения каждой команды, составляющей нашу программу.

В итоге результатом проведения работы над курсовым проектом стала рабочая программа для учебной ЭВМ, а также полученный в ходе работы незаменимый опыт в работе с учебной ЭВМ.

Наши рекомендации