Практическая работа №1. Практическая работа 1. Описание программы CompModel
Скачать 422.07 Kb.
|
Практическая работа №1. Описание программы CompModel Современные процессоры и операционные системы — не слишком благоприятная среда для начального этапа изучения архитектуры ЭВМ. Одним из решений этой проблемы может быть создание программных моделей учебных ЭВМ, которые, с одной стороны, достаточно просты, чтобы обучаемый мог освоить базовые понятия архитектуры (система команд, командный цикл, способы адресации, уровни памяти, способы взаимодействия процессора с памятью и внешними устройствами), с другой стороны — архитектурные особенности модели должны соответствовать тенденциям развития современных ЭВМ. Программная модель позволяет реализовать доступ к различным элементам ЭВМ, обеспечивая удобство и наглядность. С другой стороны, модель позволяет игнорировать те особенности работы реальной ЭВМ, которые на данном уровне рассмотрения не являются существенными. Структура ЭВМ Моделируемая ЭВМ включает: - процессор; - блок регистров общего назначения; - оперативную память (ОЗУ); - сверхоперативную память (СОЗУ) (кэш-память); - устройства ввода (УВв); - устройства вывода (УВыв). Процессор, в свою очередь, состоит из: - центрального устройства управления (УУ); - арифметического устройства (АУ); +- блока системных регистров (CR, PC, SP и др.). Модель учебной ЭВМ реализована в виде программы CompModel.exe, которая находиться в подкаталоге Программы, расположенном в том же каталоге где и текст данной работы. В программной модели учебной ЭВМ использован стандартный интерфейс Windows, реализованный в нескольких окнах. Основное окно модели Модель учебной ЭВМ содержит основное меню и кнопки на панели управления. В рабочее поле окна выводятся сообщения о функционировании системы в целом. Эти сообщения группируются в файле logfile.txt (по умолчанию), сохраняются на диске и могут быть проанализированы после завершения сеанса работы с моделью. Строка меню содержит следующие пункты и команды: Файл: неактивные команды; Выход. Вид: Показать все; Скрыть все; Процессор; Микрокомандный уровень; Память; Кэш-память; Программа; Текст программы. Внешние устройства: Менеджер ВУ; окна подключенных ВУ; Работа: Пуск; Стоп; Шаг; Режим микрокоманд; Кэш-память; Настройки. Команды меню Вид открывают окна соответствующих обозревателей, описанные далее. Менеджер внешних устройств позволяет подключать/отключать внешние устройства, предусмотренные в системе. Команда вызова менеджера внешних устройств выполняется при нажатии кнопки на панели инструментов. Подробнее о внешних устройствах и их обозревателях смотрите ниже. Команды меню Работа позволяют запустить программу в автоматическом (команда Пуск) или шаговом (команда Шаг) режиме, остановить выполнение программы в модели процессора (команда Стоп). Эти команды могут выполняться при нажатии соответствующих одноименных кнопок на панели инструментов основного окна. Команда Режим микрокоманд включает/выключает микрокомандный режим работы процессора, а команда Кэш-память подключает/отключает в системе модель этого устройства. Команда Настройки открывает диалоговое окно Параметры системы, позволяющее установить задержку реализации командного цикла (при выполнении программы в автоматическом режиме), а так же установить параметры файла logfile.txt, формируемого системой и записываемого на диск. 2.1. Окна основных обозревателей системы 2.1.1 Окно Процессор Окно Процессор (рис. 4) обеспечивает доступ ко всем регистрам и флагам процессора. Рис.4. Окно Процессор Программно-доступные регистры и флаги: Асс — аккумулятор АЛУ; PC — счетчик адреса команды, содержащий адрес текущей команды; SP — указатель стека, содержащий адрес верхушки стека; RB — регистр базового адреса, содержащий базовый адрес; RA — регистр адреса, содержащий исполнительный адрес при косвенной адресации; IR — входной регистр; OR — выходной регистр; I — флаг разрешения прерываний. Системные регистры и флаги: DR — регистр данных АЛУ, содержащий второй операнд; MDR — регистр данных ОЗУ; MAR — регистр адреса ОЗУ; RDR — регистр данных блока РОН; RAR — регистр адреса блока РОН; CR — регистр команд, содержащий поля: D COP — код операции; ТА — тип адресации; ADR — адрес или непосредственный операнд; Z — флаг нулевого значения Асе; S — флаг отрицательного значения Асс; OV — флаг переполнения. Регистры Асс, DR, IR, OR, CR и все ячейки ОЗУ и РОН имеют длину 6 десятичных разрядов, регистры PC, SP, RA и RB — 3 разряда. В окне Процессор отражаются текущие значения регистров и флагов, причем в состоянии Останов все регистры, включая регистры блока РОН, и флаги (кроме флага I) доступны для непосредственного редактирования. Элементы управления окна Процессор включают меню и кнопки, вызывающие команды: Сохранить; Загрузить; Reset; Reset R0-R9 (только команда меню Работа). Команды Сохранить, Загрузить позволяют сохранить текущее значение регистров и флагов процессора в файле и восстановить состояние процессора из файла. Команда Reset и кнопка R устанавливают все регистры (в т. ч. блок РОН) в начальное (нулевое) значение. Содержимое ячеек памяти при этом не меняется. Выполняемая лишь из меню Работа команда Reset R0-R9 очищает только регистры блока РОН. 2.1.2 Окно Память Окно Память (рис. 5) отражает текущее состояние ячеек ОЗУ. В этом окне допускается редактирование содержимого ячеек, кроме того, предусмотрена возможность выполнения (через меню или с помощью кнопок панели инструментов) пяти команд: - Сохранить, - Загрузить, - Перейти к, - Вставить, - Убрать. Команды Сохранить, Загрузить во всех окнах, где они предусмотрены, работают одинаково — сохраняют в файле текущее состояние объекта (в данном случае памяти) и восстанавливают это состояние из выбранного файла, причем файл в каждом окне записывается по умолчанию с характерным для этого окна расширением. Команда Перейти к открывает диалоговое окно, позволяющее перейти на заданную ячейку ОЗУ. Команда Убрать открывает диалог, в котором указывается диапазон ячеек с m по n. Содержимое ячеек в этом диапазоне теряется, а содержимое ячеек [(n + 1) : 999] перемещается в соседние ячейки с меньшими адресами. Освободившиеся ячейки с адресами 999, 998, ... заполняются нулями. Рис. 5. Окно Память Команда Вставить, позволяющая задать номера ячеек, перемещает содержимое всех ячеек, начиная от m-йна n-m позиций в направлении больших адресов, ячейки заданного диапазона [ m : n ] заполняются нулями, а содержимое последних ячеек памяти теряется. 2.1.3 Окно Текст программы Окно Текст программы (рис. 6) содержит стандартное поле текстового редактора, в котором можно редактировать тексты, загружать в него текстовые файлы и сохранять подготовленный текст в виде файла. Команды меню Файл: Новая — открывает новый сеанс редактирования; Загрузить — открывает стандартный диалог загрузки файла в окно редактора; Сохранить — сохраняет файл под текущим именем; Сохранить как — открывает стандартный диалог сохранения файла; Вставить — позволяет вставить выбранный файл в позицию курсора. Все перечисленные команды, кроме последней, дублированы кнопками на панели инструментов окна. На той же панели присутствует еще одна кнопка — Компилировать, которая запускает процедуру ассемблирования текста в поле редактора. Ту же процедуру можно запустить из меню Работа. Команда Адрес вставки позволяет задать адрес ячейки ОЗУ, начиная с которой программа будет размещаться в памяти. По умолчанию этот адрес принят равным 0. Ниже области редактирования в строку состояния выводится позиция текущей строки редактора — номер строки, в которой находится курсор. Рис. 6. Окно Текст программы В случае обнаружения синтаксических ошибок в тексте программы диагностические сообщения процесса компиляции выводятся в окно сообщений и запись в память кодов (даже безошибочного начального фрагмента программы) не производится. После исправления ошибок и повторной компиляции выдается сообщение об отсутствии ошибок, о расположении и размере области памяти, занятой под ассемблированную программу. Правила ввода текстов программ: Набор текста программы производится по стандартным правилам языка ассемблера. Мнемонический код операции отделяется от операндов пробелом. Мнемокод должен быть записан только заглавными буквами. В каждой строке может содержаться метка, одна команда и комментарий. Метка отделяется от команды двоеточием, символы после знака "точка с запятой" до конца строки игнорируются компилятором и могут рассматриваться как комментарии. Строка может начинаться с ; и, следовательно, содержать только комментарии. 2.1.4. Окно Программа Окно Программа (рис. 7) отображает таблицу, имеющую 300 строк и 4 столбца. Каждая строка таблицы соответствует дизассемблированной ячейке ОЗУ. Второй столбец содержит адрес ячейки ОЗУ, третий — дизассембли-рованный мнемокод, четвертый — машинный код команды. В первом столбце может помещаться указатель --> на текущую команду (текущее значение PC) и точка останова — красная заливка ячейки. Рис. 7. Окно Программа Окно Программа позволяет наблюдать процесс прохождения программы. В этом окне ничего нельзя редактировать. Органы управления окна позволяют сохранить содержимое окна в виде текстового файла, выбрать начальный адрес области ОЗУ, которая будет дизассемблироваться (размер области постоянный — 300 ячеек), а также установить/снять точку останова. Последнее можно проделать тремя способами: командой Точка останова из меню Работа, кнопкой на панели инструментов или двойным щелчком мыши в первой ячейке соответствующей строки. Характерно, что прочитать в это окно ничего нельзя. Сохраненный текстовый asm-файл можно загрузить в окно Текст программы, ассемблировать его и тогда дизассемблированное значение заданной области памяти автоматически появится в окне Программа. Такую процедуру удобно использовать, если программа изначально пишется или редактируется непосредственно в памяти в машинных кодах. Начальный адрес области дизассемблирования задается в диалоге командой Начальный адрес меню Работа. 2.1.5 Окно Микрокомандный уровень Окно Микрокомандный уровень (рис. 8) используется только в режиме микрокоманд, который устанавливается командой Режим микрокоманд меню Работа. В это окно выводится мнемокод выполняемой команды, список микрокоманд, ее реализующих, и указатель на текущую выполняемую микрокоманду. Шаговый режим выполнения программы или запуск программы в автоматическом режиме с задержкой командного цикла позволяет наблюдать процесс выполнения программы на уровне микрокоманд. Если открыть окно Микрокомандный уровень, не установив режим микрокоманд в меню Работа, то после начала выполнения программы в режиме Шаг (или в автоматическом режиме) в строке сообщений окна будет выдано сообщение "Режим микрокоманд неактивен". Рис. 8. Окно Микрокомандный уровень 2.2. Вспомогательные таблицы В данном разделе представлены вспомогательные таблицы (табл. 6—8) для работы с моделью учебной ЭВМ. Таблица 6. Типы адресации, их коды и обозначение Таблица 7. Таблица кодов ASCII (фрагмент) Таблица 8. Перевод шестнадцатиричных кодов в десятичные Таблица 3. Система команд учебной ЭВМ 3. Порядок работы с моделью учебной эвм Для решения с помощью ЭВМ некоторой задачи должна быть разработана программа. Программа на языке ЭВМ представляет собой последовательность команд. Код каждой команды определяет выполняемую операцию, тип адресации и адрес. Выполнение программы, записанной в памяти ЭВМ, осуществляется последовательно по командам в порядке возрастания адресов команд или в порядке, определяемом командами передачи управления. Для того чтобы получить результат выполнения программы, пользователь должен: ввести программу в память ЭВМ; определить, если это необходимо, содержимое ячеек ОЗУ и РОН, содержащих исходные данные, а также регистров IR и BR; установить в PC стартовый адрес программы; перевести модель в режим Работа. Каждое из этих действий выполняется посредством интерфейса модели, описанного в разделе 2. Ввод программы. Ввод программы может осуществляться двумя способами: 1-й способ: - в машинных кодах непосредственно в память модели в окне Память. 2-й способ: - в мнемокодах в окне Текст программыс последующим ассемблированием. Ввод значений РОН, регистров процессора. Ввод значений РОН, а также регистров PC, IR, BR др. выполняется в окне Процессор, путем непосредственного редактирования соответствующих полей. Ввод команд и данных в память модели. Ввод команд и данных в память модели выполняется в окне Память. ЗАДАНИЯ ДЛЯ ВЫПОЛНЕНИЯ: 1. Ознакомиться с теоретическими сведениями по архитектуре ЭВМ 2. Запустите программу CompModel.exe. 3. Записать в ОЗУ "программу", состоящую из пяти команд— номер задания выбрать из табл. 3, в соответствии с номером Вашего варианта. Команды разместить в последовательных ячейках памяти. Таблица 3. Варианты заданий
При необходимости установить начальное значение в устройство ввода IR. 3. Определить те программно-доступные объекты ЭВМ, которые будут изменяться при выполнении этих команд. 4. Выполнить в режиме Шаг введенную последовательность команд, фиксируя изменения значений объектов, определенных в п. 4, в таблице следующего формата. ПРИМЕР Дана последовательность мнемокодов, которую необходимо преобразовать в машинные коды, занести в ОЗУ ЭВМ, выполнить в режиме Шаг и зафиксировать изменение состояний программно-доступных объектов ЭВМ (табл. 1). Таблица 1. Команды и коды
2.2. Введите коды табл.1 последовательно в ячейки ОЗУ, начиная с адреса 000. 2.3. Выполняя команды в режиме Шаг, фиксируйте в табл. 2 изменения программно-доступных объектов (в данном случае это Асс, PC и ячейки ОЗУ 020 и 030). |