Жмакин А.П. Архитектура ЭВМ (2006) (1186252), страница 36
Текст из файла (страница 36)
□ ТА — тип адресации;
□ X — разряд не используется.
8.3.2. Способы адресации
В ЭВМ принято различать пять основных способов адресации: прямая, косвенная, непосредственная, относительная, безадресная.
Каждый способ имеет разновидности. В модели учебной ЭВМ реализованы семь способов адресации, приведенные в табл. 8.1.
Система команд учебной ЭВМ включает команды следующих классов:
□ арифметико-логические и специальные: сложение, вычитание, умножение, деление;
□ пересылки и загрузки: чтение, запись, пересылка (из регистра в регистр), помещение в стек, извлечение из стека, загрузка указателя стека, загрузка базового регистра;
□ ввода/вывода: ввод, вывод;
□ передачи управления: безусловный и шесть условных переходов, вызов подпрограммы, возврат из подпрограммы, цикл, программное прерывание, возврат из прерывания;
□ системные: пустая операция, разрешить прерывание, запретить прерывание, стон.
Список команд учебной ЭВМ приведен в табл. 8.4 и 8.6.
8.4. Состояния и режимы работы ЭВМ
Ядром УУ ЭВМ является управляющий автомат (УА), вырабатывающий сигналы управления, которые инициируют работу АЛУ, РОН, ОЗУ и УВВ, передачу информации между регистрами устройств ЭВМ и действия над содержимым регистров УУ.
ЭВМ может находиться в одном из двух состояний: Останов и Работа.
В состояние Работа ЭВМ переходит по действию команд Пуск или Шаг. Команда Пуск запускает выполнение программы, представляющую собой последовательность команд, записанных в ОЗУ, в автоматическом режиме до команды hlt или точки останова. Программа выполняется по командам, начиная с ячейки ОЗУ, на которую указывает PC, причем изменение состояний объектов модели отображается в окнах обозревателей.
В состояние Останов ЭВМ переходит по действию команды Стоп или авто» матически в зависимости от установленного режима работы.
Команда Шаг, в зависимости от установленного режима работы, запускает выполнение одной команды или одной микрокоманды (если установлен Режим микрокоманд), после чего переходит в состояние Останов.
В состоянии Останов допускается просмотр и модификация объектов модели: регистров процессора и РОН, ячеек ОЗУ, устройств ввода/вывода. В процессе модификации ячеек ОЗУ и РОН можно вводить данные для программы, в ячейки ОЗУ — программу в кодах. Кроме того, в режиме Останов можно менять параметры модели и режимы ее работы, вводить и/или редактировать программу в мнемокодах, ассемблировать мнемокоды, выполнять стандартные операции с файлами.
8.5. Интерфейс пользователя
В программной модели учебной ЭВМ использован стандартный интерфейс Windows, реализованный в нескольких окнах.
Основное окно модели Модель учебной ЭВМ содержит основное меню и кнопки на панели управления. В рабочее поле окна выводятся сообщения о функционировании системы в целом. Эти сообщения группируются в файле logfile.txt (по умолчанию), сохраняются на диске и могут быть проанализированы после завершения сеанса работы с моделью.
Меню содержит следующие пункты и команды:
□ Файл:
• неактивные команды;
• Выход.
□ Вид:
• Показать все;
• Скрыть все; 1
• Процессор;
• Микрокомандный уровень;
• Память;
• Кэш-память;
• Программа;
• Текст программы. П Внешние устройства:
• Менеджер ВУ;
• окна подключенных ВУ; □ Работа:
• Пуск;
• Стоп;
• Шаг;
• Режим микрокоманд;
• Кэш-память;
• Настройки.
Команды меню Вид открывают окна соответствующих обозревателей, описанные далее. Менеджер внешних устройств позволяет подключать/отключать внешние устройства, предусмотренные в системе. Команда вызова менеджера внешних устройств выполняется при нажатии кнопки на панели инструментов. Подробнее о внешних устройствах и их обозревателях смотрите в разд. 8.6.
Команды меню Работа позволяют запустить программу в автоматическом (команда Пуск) или шаговом (команда Шаг) режиме, остановить выполнение программы в модели процессора (команда Стоп). Эти команды могут выполняться при нажатии соответствующих одноименных кнопок на панели инструментов основного окна.
Команда Режим микрокоманд включает/выключает микрокомандный режим работы процессора, а команда Кэш-память подключает/отключает системе модель этого устройства.
Команда Настройки открывает диалоговое окно Параметры системы, позволяющее установить задержку реализации командного цикла (при выполнении программы в автоматическом режиме), а так же установить параметры файла logfile.txt, формируемого системой и записываемого на диск.
8.5.1. Окна основных обозревателей системы Окно Процессор
Окно Процессор (рис. 8.4) обеспечивает доступ ко всем регистрам и флагам процессора.
□ Программно-доступные регистры и флаги: Асе — аккумулятор;
PC — счетчик адреса команды, содержащий адрес текущей команд
SP — указатель стека, содержащий адрес верхушки стека;
RB — регистр базового адреса, содержащий базовый адрес;
RA — регистр адреса, содержащий исполнительный адрес при кос ной адресации;
IR — входной регистр;
OR — выходной регистр;
I — флаг разрешения прерываний.
Системные регистры и флаги:
DR — регистр данных АЛУ, содержащий второй операнд;
MDR — регистр данных ОЗУ;
MAR — регистр адреса ОЗУ;
RDR — регистр данных блока РОН;
RAR — регистр адреса блока РОН;
CR — регистр команд, содержащий поля:
° СОР — код операции;
° ТА — тип адресации;
a ADR — адрес или непосредственный операнд;
• Z — флаг нулевого значения Асе;
• S — флаг отрицательного значения Асе;
• OV — флаг переполнения.
Регистры Асе, DR., IR, OR, CR и все ячейки ОЗУ и РОН имеют длину 6 десятичных разрядов, регистры PC, SP, RA и RB — 3 разряда. В окне Процессор отражаются текущие значения регистров и флагов, причем в состоянии Останов все регистры, включая регистры блока РОН, и флаги (кроме флага I) доступны для непосредственного редактирования.
Элементы управления окна Процессор включают меню и кнопки, вызывающие команды:
□ Сохранить;
□ Загрузить;
□ Reset;
□ Reset R0-R9 (только команда меню Работа).
Команды Сохранить, Загрузить позволяют сохранить текущее значение регистров и флагов процессора в файле и восстановить состояние процессора из файла. Команда Reset и кнопка R устанавливают все регистры (в т. ч. блок РОН) в начальное (нулевое) значение. Содержимое ячеек памяти при этом не меняется. Выполняемая лишь из меню Работа команда Reset R0-R9 очищает только регистры блока РОН.
Окно Память
Окно Память (рис. 8.5) отражает текущее состояние ячеек ОЗУ. В этом окне допускается редактирование содержимого ячеек, кроме того, предусмотрена возможность выполнения (через меню или с помощью кнопок панели инструментов) пяти команд: Сохранить, Загрузить, Перейти к, Вставить, Убрать.
Команды Сохранить, Загрузить во всех окнах, где они предусмотрены, работают одинаково — сохраняют в файле текущее состояние объекта (в данном случае памяти) и восстанавливают это состояние из выбранного файла, причем файл в каждом окне записывается по умолчанию с характерным для этого окна расширением.
Команда Перейти к открывает диалоговое окно, позволяющее перейти на заданную ячейку ОЗУ. ]
Команда Убрать открывает диалог, в котором указывается диапазон ячеек с m по п. Содержимое ячеек в этом диапазоне теряется, а содержимое ячеек [(и + 1): 999] перемещается в соседние ячейки с меньшими адресами. Освободившиеся ячейки с адресами 999, 998,... заполняются нулями.
Команда Вставить, позволяющая задать номера ячеек, перемещает содержимое всех ячеек, начиная от m -й на n - m позиций в направлении больших адресов, ячейки заданного диапазона [m:n] заполняются нулями, а содержимое последних ячеек памяти теряется.
Окно Текст программы
Окно Текст программы (рис. 8.6) содержит стандартное поле текстового редактора, в котором можно редактировать тексты, загружать в него текстовые файлы и сохранять подготовленный текст в виде файла.
Команды меню Файл:
П Новая — открывает новый сеанс редактирования;
П Загрузить — открывает стандартный диалог загрузки файла в окно редактора;
□ Сохранить — сохраняет файл под текущим именем;
□ Сохранить как — открывает стандартный диалог сохранения файла;
□ Вставить — позволяет вставить выбранный файл в позицию курсора. Все перечисленные команды, кроме последней, дублированы кнопками на панели инструментов окна. На той же панели присутствует еще одна кнопка — Компилировать, которая запускает процедуру ассемблирования текста в поле редактора.
Ту же процедуру можно запустить из меню Работа. Команда Адрес вставки позволяет задать адрес ячейки ОЗУ, начиная с которой программа будет размещаться в памяти. По умолчанию этот адрес принят равным 0. Ниже области редактирования в строку состояния выводится позиция текущей строки редактора — номер строки, в которой находится курсор.
В случае обнаружения синтаксических ошибок в тексте программы диагностические сообщения процесса компиляции выводятся в окно сообщений и запись в память кодов (даже безошибочного начального фрагмента программы) не производится.
После исправления ошибок и повторной компиляции выдается сообщение об отсутствии ошибок, о расположении и размере области памяти, занятой по ассемблированную программу.
Набор текста программы производится по стандартным правилам языка ас семблера. В каждой строке может содержаться метка, одна команда и ком ментарий. Метка отделяется от команды двоеточием, символы после знак "точка с запятой" до конца строки игнорируются компилятором и могут рассматриваться как комментарии. Строка может начинаться с ; и, следовательно, содержать только комментарии.
Окно Программа
Окно Программа (рис. 8.7) отображает таблицу, имеющую 300 строк 4 столбца. Каждая строка таблицы соответствует дизассемблированной яче1
Гпава 8. Описание архитектуры учебной ЭВМ
247
ке ОЗУ. Второй столбец содержит адрес ячейки ОЗУ, третий — дизассембли-рованный мнемокод, четвертый — машинный код команды. В первом столбце может помещаться указатель —> на текущую команду (текущее значение PC) и точка останова — красная заливка ячейки.
Окно Программа позволяет наблюдать процесс прохождения программы. В этом окне ничего нельзя редактировать. Органы управления окна позволяют сохранить содержимое окна в виде текстового файла, выбрать начальный адрес области ОЗУ, которая будет дизассемблироваться (размер области постоянный — 300 ячеек), а также установить/снять точку останова. Последнее можно проделать тремя способами: командой Точка останова из меню Работа, кнопкой на панели инструментов или двойным щелчком мыши в первой ячейке соответствующей строки. Характерно, что прочитать в это окно ничего нельзя. Сохраненный текстовый asm-файл можно загрузить в окно Текст программы, ассемблировать его и тогда дизассемблированное значение заданной области памяти автоматически появится в окне Программа, Такую процедуру удобно использовать, если программа изначально пишется или редактируется непосредственно в памяти в машинных кодах.
Начальный адрес области дизассемблирования задается в диалоге командой Начальный адрес меню Работа.
Окно Микрокомандный уровень