Практическая работа № 5.
Тема: Построение последовательности машинных операций для реализации простых вычислений
Цель: знакомство циклом работы процессора
Используемое ПО: программа-тренажер CompModel, инструкция к программе
Теоретическая часть
Описание архитектуры учебной ЭВМ
Структура ЭВМ
Моделируемая ЭВМ включает процессор, оперативную (ОЗУ) и сверхоперативная память, устройство ввода (УВв) и устройство вывода (УВыв). Процессор в свою очередь, состоит из центрального устройства управления (УУ), арифметического устройства (АУ) и системных регистров (CR, РС, и др.). Структурная схема ЭВМ показана на рис. 1.
В ячейках ОЗУ хранятся команды и данные. Емкость ОЗУ составляет 1000 ячеек. По сигналу MWr выполняется запись содержимого регистра данных (MDR) в ячейку памяти с адресом, указанным в регистре адреса (МAR ). По сигналу МRd происходит считывание - содержимое ячейки памяти с адресом, содержащимся в MAR, передается в MDR.
Сверхоперативная память с прямой адресацией содержит десять регистров общего назначения R0-R9. Доступ к ним осуществляется (аналогично доступу к ОЗУ) через регистры RAR и RDR.
АЛУ осуществляет выполнение одной из арифметических операций, определяемой кодом операции (СОР), над содержимым аккумулятора (Асс) и регистра операнда (DR). Результат операции всегда помещается в Асс. При завершении выполнения операции АУ вырабатывает сигналы признаков результата: Z (равен 1, если результат равен нулю); S (равен 1, если результат отрицателен); ОV (равен 1, если при выполнении операции произошло переполнение разрядной сетки). В случаях, когда эти условия не выполняются, соответствующие сигналы имеют нулевое значение.
В модели ЭВМ предусмотрены внешние устройства двух типов. Во-первых, регистры IR и OR, которые могут обмениваться с аккумулятором с помощью безадресных команд IN (Асс := IR) и OUT (OR := Асс). Во-вторых, это моделей внешних устройств, которые могут подключаться к системе и взаимодействовать с ней в соответствии с заложенными в моделях алгоритмами. Каждое внешнее устройство имеет ряд программно-доступных регистров, может иметь собственный обозреватель (окно видимых элементов).
УУ осуществляет выборку команд из ОЗУ в последовательности, определяемой естественным порядком выполнения команд (т. е. в порядке возрастания адресов команд в ОЗУ) или командами передачи управления; выборку из ОЗУ операндов, задаваемых адресами команды; инициирование выполнения операции, предписанной командой; останов или переход к выполнению с следующей команды.
В качестве сверхоперативной памяти в модель включены регистры общего назначения (РОН), и может подключаться модель кэш-памяти.
В состав УУ ЭВМ входят:
РС - счетчик адреса команды, содержащий адрес текущей команды;
CR - регистр команды, содержащий код команды;
RB - регистр базового адреса, содержащий базовый адрес;
SP - указатель стека, содержащий адрес верхушки стека;
RA - регистр адреса, содержащий исполнительный адрес при косвенной адресации.
Регистры Асс, DR, IR, OR, CR и все ячейки ОЗУ и РОН имеют длину 6 десятичных разрядов, регистры РС, SP, RA и RB - 3 разряда.
Представление данных в модели
Данные в ЭВМ представляются в формате, показанном на рис. 2. Это целые десятичные числа, изменяющиеся в диапазоне "-99 999 ... +99 999", содержащие знак и 5 десятичных цифр.
0
|
1 2 3 4 5
|
знак
|
Десятичные цифры
|
Рис.2 Форматы десятичных данных
Старший разряд слова данных используется для кодирования знака: плюс (+) изображается как 0, минус (-) - как 1. Если результат арифметической операции выходит за пределы указанного диапазона, то говорят, что произошло переполнение разрядной сетки. АЛУ в этом случае вырабатывает сигнал переполнения ОV = 1. Результатом операции деления является целая часть частного. Деление на ноль вызывает переполнение
Система команд
При рассмотрении системы команд ЭВМ обычно анализируют три аспекта: форматы, способы адресации и систему операций.
Большинство команд учебной ЭВМ являются одноадресными или безадресными, длиной в одно машинное слово (6 разрядов). Исключение оставляют двухсловные команды с непосредственной адресацией и команда MOV, являющаяся двухадресной.
В форматах команд выделяется три поля:
два старших разряда [0:1] определяют код операции СОР;
разряд 2 может определять тип адресации;
разряды [3:5] могут определять прямой или косвенный адрес памяти, номер регистра (в команде MOV номера двух регистров), адрес перехода или короткий непосредственный операнд. В двухсловных командах непосредственный операнд занимает поле [6: 11].
Полный список форматов команд показан на рис.3, где приняты следующие обозначения:
СОР - код операции;
ADR - адрес операнда в памяти;
ADС - адрес перехода;
I - непосредственный операнд;
R, Rl, R2 - номер регистра;
TА - тип адресации;
X-разряд не используется.
Номер формата
|
0 1
|
2
|
3 4 5
|
|
|
1
|
СОР
|
Х
|
Х Х Х
|
|
|
2
|
СОР
|
ТА
|
ADR
|
|
|
3
|
СОР
|
ТА
|
Х Х R
|
|
|
3а
|
СОР
|
ТА
|
X R1 R2
|
6
|
6 11
|
4
|
СОР
|
Х
|
Х Х Х
|
1
|
I
|
5
|
СОР
|
Х
|
ADC
|
|
|
5а
|
СОР
|
R
|
ADC
|
|
|
Рис. 3. Форматы команд учебной программы.
В ЭВМ принято различать пять основных способов адресации: прямая, косвенная, непосредственная, относительная, безадресная.
Каждый способ имеет разновидности. В модели учебной ЭВМ реализованы семь способов в адресации, приведенные в табл1.
Таблица 1. Адресация в командах учебной ЭВМ.
Код ТА
|
Тип адресации
|
Исполнительный адрес
|
0
|
Прямая (регистровая)
|
ADR(R)
|
1
|
Непосредственная
|
-
|
2
|
Косвенная
|
ОЗУ(ADR)[З:5]
|
3
|
Относительная
|
ADR+RВ
|
4
|
Косвенно-регистровая
|
РОН(R)[З:5]
|
5
|
Индексная с постинкрементом
|
РОН(R)[З:5], R:= R + I
|
6
|
Индексная с преддекрементом
|
R:= R -1, РОН(R)[З :5]
|
3.3. Система операций
Система команд учебной ЭВМ включает команды следующих классов:
арифметико-логические и специальные: сложение, вычитание, умножение, деление;
пересылки и загрузки: чтение, запись, пересылка (из регистра в регистр), помещение в стек, извлечение из стека, загрузка указателя стека, загрузка базового регистра;
ввода/вывода: ввод, вывод;
передачи управления: безусловный и шесть условных переходов, вызов подпрограммы, возврат из подпрограммы, цикл, программное прерывание, возврат из прерывания.
системные: пустая операция, разрешить прерывание, запретить прерывание.
Список команд учебной ЭВМ приведен в табл. 4 и 6.
4. Состояния и режимы работы ЭВМ
Ядром УУ ЭВМ является управляющий автомат (УА), вырабатывающий сигналы управления, которые инициируют работу АЛУ, РОН, ОЗУ и УВВ, передачу информации между регистрами устройств ЭВМ и действия над содержимым регистров УУ.
ЭВМ может находиться в одном из двух состояний: Останов и Работа.
В состояние Работа ЭВМ переходит по действию команд Пуск или Шаг. Команда Пуск запускает выполнение программы, представляющую собой последовательность команд, записанных в ОЗУ, в автоматическом режиме до команды HLT или точки останова. Программа выполняется по командам, начиная с ячейки ОЗУ, на которую показывает РС, причем изменение состояний объектов модели отображается в окнах обозревателей.
В состояние Останов ЭВМ переходит по действию команды Стоп или автоматически в зависимости от установленного режима работы.
Команда Шаг, в зависимости от установленного режима работы, запускает выполнение одной команды или одной микрокоманды (если установлен Режим микрокоманд), после чего переходит в состояние Останов.
В состоянии Останов допускается просмотр и модификация объектов модели: регистров процессора и РОН, ячеек ОЗУ, устройств ввода/вывода. В процессе модификации ячеек ОЗУ и РОН можно вводить данные для программы в ячейки ОЗУ - программу в кодах. Кроме того, в режиме Останов можно менять параметры модели и режимы ее работы, вводить и/или редактировать программу в мнемокодах, ассемблировать мнемокоды, выполнять стандартные операции с файлами.
5. Интерфейс ЭВМ
Для решения с помощью ЭВМ некоторой задачи должна быть разработана программа. Программа на языке ЭВМ представляет собой последовательность команд. Код каждой команды определяет выполняемую операцию, тип адресации и адрес. Выполнение программы, записанной в памяти ЭВМ, осуществляется последовательно по командам в порядке возрастания адресов команд или в порядке, определяемом командами передачи управления.
Для того чтобы получить результат выполнения программы, пользователь должен:
ввести программу в память ЭВМ;
определить, если это необходимо, содержимое ячеек ОЗУ и РОН, содержащих исходные данные, а также регистров IR и BR;
установить в PC стартовый адрес программы;
перевести модель в режим Работа.
Каждое из этих действий выполняется посредством интерфейса модели.
Окна основных обозревателей системы
Окно Процессор
Окно Процессор обеспечивает доступ ко всем регистрам и флагам процессоров.
Рис. 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;
Reset R0-R9 (только команда меню Работа).
Команды Сохранить, Загрузить позволяют сохранить текущее значение регистров и флагов процессора в файле и восстановить состояние процессора из файла. Команда Reset и кнопка R устанавливают все регистры (в т. ч. блок РОН) в начальное (нулевое) значение. Содержимое ячеек памяти при этом не меняется. Выполняемая лишь из меню Работа команда Reset R0-R9 очищает только регистры блока РОН.
Окно Память
Окно Память (рис. 8.5) отражает текущее состояние ячеек ОЗУ. В этом окне допускается редактирование содержимого ячеек, кроме того, предусмотрена возможность выполнения (через меню или с помощью кнопок панели инструментов) пяти команд: Сохранить, Загрузить, Перейти к, Вставить, Убрать.
Команды Сохранить, Загрузить во всех окнах, где они предусмотрены, работают одинаково — сохраняют в файле текущее состояние объекта (в данном случае памяти) и восстанавливают это состояние из выбранного файла, причем файл в каждом окне записывается по умолчанию с характерным для этого окна расширением.
Команда Перейти к открывает диалоговое окно, позволяющее перейти на заданную ячейку ОЗУ.
Команда Убрать открывает диалог, в котором указывается диапазон ячеек с m по n. Содержимое ячеек в этом диапазоне теряется, а содержимое ячеек [(n +1): 999] перемещается в соседние ячейки с меньшими адресами. Освободившиеся ячейки с адресами 999, 998, ... заполняются нулями.
Рис. 8.5. Окно Память
Команда Вставить, позволяющая задать номера ячеек, перемещает содержимое всех ячеек, начиная от т -й на п - т позиций в направлении больших адресов, ячейки заданного диапазона [т:п] заполняются нулями, а содержимое последних ячеек памяти теряется.
|