Главная страница |
Навигация по странице:
|
Практическая работа_последов. Практическая работа Тема Построение последовательности машинных операций для реализации простых вычислений
Рис.2 Форматы десятичных данных Старший разряд слова данных используется для кодирования знака: плюс (+) изображается как О, минус (-) - как 1. Если результат арифметической операции выходит за пределы указанного диапазона, то говорят, что произошло переполнение разрядной сетки. АЛУ в этом случае вырабатывает сигнал переполнения ОV = 1. Результатом операции деления является целая часть частного. Деление на ноль вызывает переполнение
При рассмотрении системы команд ЭВМ обычно анализируют три аспекта: форматы, способы адресации и систему операций.
Большинство команд учебной ЭВМ являются одноадресными или безадресными, длиной в одно машинное слово (6 разрядов). Исключение оставляют двухсловные команды с непосредственной адресацией и команда MOV, являющаяся двухадресной. В форматах команд выделяется три поля:
Полный список форматов команд показан на рис.3, где приняты следующие обозначения: СОР - код операции; ADR - адрес операнда в памяти; ADС - адрес перехода; I - непосредственный операнд; R, Rl, R2 - номер регистра; TА - тип адресации; X-разряд не используется.
Рис. 3. Форматы команд учебной программы.
В ЭВМ принято различать пять основных способов адресации: прямая, косвенная, непосредственная, относительная, безадресная. Каждый способ имеет разновидности. В модели учебной ЭВМ реализованы семь способов в адресации, приведенные в табл1. Таблица 1. Адресация в командах учебной ЭВМ.
3.3. Система операций Система команд учебной ЭВМ включает команды следующих классов:
Список команд учебной ЭВМ приведен в табл. 4 и 6. 4. Состояния и режимы работы ЭВМ Ядром УУ ЭВМ является управляющий автомат (УА), вырабатывающий сигналы управления, которые инициируют работу АЛУ, РОН, ОЗУ и УВВ, передачу информации между регистрами устройств ЭВМ и действия над содержимым регистров УУ. ЭВМ может находиться в одном из двух состояний: Останов и Работа. В состояние Работа ЭВМ переходит по действию команд Пуск или Шаг. Команда Пуск запускает выполнение программы, представляющую собой последовательность команд, записанных в ОЗУ, в автоматическом режиме до команды HLT или точки останова. Программа выполняется по командам, начиная с ячейки ОЗУ, на которую показывает РС, причем изменение состояний объектов модели отображается в окнах обозревателей. В состояние Останов ЭВМ переходит по действию команды Стоп или автоматически в зависимости от установленного режима работы. Команда Шаг, в зависимости от установленного режима работы, запускает выполнение одной команды или одной микрокоманды (если установлен Режим микрокоманд), после чего переходит в состояние Останов. В состоянии Останов допускается просмотр и модификация объектов модели: регистров процессора и РОН, ячеек ОЗУ, устройств ввода/вывода. В процессе модификации ячеек ОЗУ и РОН можно вводить данные для программы в ячейки ОЗУ - программу в кодах. Кроме того, в режиме Останов можно менять параметры модели и режимы ее работы, вводить и/или редактировать программу в мнемокодах, ассемблировать мнемокоды, выполнять стандартные операции с файлами. 5. Интерфейс ЭВМ Для решения с помощью ЭВМ некоторой задачи должна быть разработана программа. Программа на языке ЭВМ представляет собой последовательность команд. Код каждой команды определяет выполняемую операцию, тип адресации и адрес. Выполнение программы, записанной в памяти ЭВМ, осуществляется последовательно по командам в порядке возрастания адресов команд или в порядке, определяемом командами передачи управления. Для того чтобы получить результат выполнения программы, пользователь должен:
Каждое из этих действий выполняется посредством интерфейса модели. Окна основных обозревателей системы Окно Процессор Окно Процессор обеспечивает доступ ко всем регистрам и флагам процессоров. Рис. 8.4. Окно Процессор Программно-доступные регистры и флаги: Асс — аккумулятор; PC — счетчик адреса команды, содержащий адрес текущей команды; SP — указатель стека, содержащий адрес верхушки стека; RB — регистр базового адреса, содержащий базовый адрес; RA — регистр адреса, содержащий исполнительный адрес при косвенной адресации; IR — входной регистр; OR — выходной регистр; I — флаг разрешения прерываний. Системные регистры и флаги: DR — регистр данных АЛУ, содержащий второй операнд; МDR — регистр данных ОЗУ; MAR — регистр адреса ОЗУ; RDR — регистр данных блока РОН; RAR — регистр адреса блока РОН; CR — регистр команд, содержащий поля: COP — код операции; ТА — тип адресации; ADR — адрес или непосредственный операнд; Z — флаг нулевого значения Асс; S — флаг отрицательного значения Асе; OV — флаг переполнения. Регистры Асс, DR, IR, OR, CR и все ячейки ОЗУ и РОН имеют длину 6 десятичных разрядов, регистры PC, SP, RA и RB — 3 разряда. В окне Процессор отражаются текущие значения регистров и флагов, причем в состоянии Останов все регистры, включая регистры блока РОН, и флаги (кроме флага 1) доступны для непосредственного редактирования. Элементы управления окна Процессор включают меню и кнопки, вызывающие команды:
Команды Сохранить, Загрузить позволяют сохранить текущее значение регистров и флагов процессора в файле и восстановить состояние процессора из файла. Команда Reset и кнопка R устанавливают все регистры (в т. ч. блок РОН) в начальное (нулевое) значение. Содержимое ячеек памяти при этом не меняется. Выполняемая лишь из меню Работа команда Reset R0-R9 очищает только регистры блока РОН. Окно Память Окно Память (рис. 8.5) отражает текущее состояние ячеек ОЗУ. В этом окне допускается редактирование содержимого ячеек, кроме того, предусмотрена возможность выполнения (через меню или с помощью кнопок панели инструментов) пяти команд: Сохранить, Загрузить, Перейти к, Вставить, Убрать. Команды Сохранить, Загрузить во всех окнах, где они предусмотрены, работают одинаково — сохраняют в файле текущее состояние объекта (в данном случае памяти) и восстанавливают это состояние из выбранного файла, причем файл в каждом окне записывается по умолчанию с характерным для этого окна расширением. Команда Перейти к открывает диалоговое окно, позволяющее перейти на заданную ячейку ОЗУ. Команда Убрать открывает диалог, в котором указывается диапазон ячеек с m по n. Содержимое ячеек в этом диапазоне теряется, а содержимое ячеек [(n +1): 999] перемещается в соседние ячейки с меньшими адресами. Освободившиеся ячейки с адресами 999, 998, ... заполняются нулями. Рис. 8.5. Окно Память Команда Вставить, позволяющая задать номера ячеек, перемещает содержимое всех ячеек, начиная от т -й на п - т позиций в направлении больших адресов, ячейки заданного диапазона [т:п] заполняются нулями, а содержимое последних ячеек памяти теряется. Окно Текст программы Окно Текст программы (рис. 8.6) содержит стандартное поле текстового редактора, в котором можно редактировать тексты, загружать в него текстовые файлы и сохранять подготовленный текст в виде файла. Команды меню Файл: Новая — открывает новый сеанс редактирования; Загрузить — открывает стандартный диалог загрузки файла в окно редактора; Сохранить — сохраняет файл под текущим именем; Сохранить как — открывает стандартный диалог сохранения файла; Вставить — позволяет вставить выбранный файл в позицию курсора. Все перечисленные команды, кроме последней, дублированы кнопками на панели инструментов окна. На той же панели присутствует еще одна кнопка — Компилировать, которая запускает процедуру ассемблирования текста в поле редактора. Ту же процедуру можно запустить из меню Работа. Команда Адрес вставки позволяет задать адрес ячейки ОЗУ, начиная с которой программа будет размещаться в памяти. По умолчанию этот адрес принят равным 0. Ниже области редактирования в строку состояния выводится позиция текущей строки редактора — номер строки, в которой находится курсор. Рис. 8.6. Окно Текст программы В случае обнаружения синтаксических ошибок в тексте программы диагностические сообщения процесса компиляции выводятся в окно сообщений, запись в память кодов (даже безошибочного начального фрагмента программы) не производится. После исправления ошибок и повторной компиляции выдается сообщение oб отсутствии ошибок, о расположении и размере области памяти, занятой под ассемблированную программу. Окно Программа Окно Программа (рис. 8.7) отображает таблицу, имеющую 300 строк и 4 столбца. Каждая строка таблицы соответствует дизассемблированной ячейке ОЗУ. Второй столбец содержит адрес ячейки ОЗУ, третий — дизассемблированный мнемокод, четвертый — машинный код команды. В первом столбце может помещаться указатель — на текущую команду (текущее значение PC) и точка останова — красная заливка ячейки. Рис. 8.7. Окно Программа Окно Программа позволяет наблюдать процесс прохождения программы. В этом окне ничего нельзя редактировать. Органы управления окна позволяют сохранить содержимое окна в виде текстового файла, выбрать начальный адрес области ОЗУ, которая будет дизассемблироваться (размер области постоянный — 300 ячеек), а также установить/снять точку останова. Последнее можно проделать тремя способами: командой Точка останова из меню Работа, кнопкой на панели инструментов или двойным щелчком мыши в первой ячейке соответствующей строки. Характерно, что прочитать в это окно ничего нельзя. Сохраненный текстовый asm-файл можно загрузить в окно Текст программы, ассемблировать его и тогда дизассемблированное значение заданной области памяти автоматически появится в окне Программа. Такую процедуру удобно использовать, если программа изначально пишется или редактируется непосредственно в памяти в машинных кодах. Начальный адрес области дизассемблирования задается в диалоге командой Начальный адрес меню Работа. |