
- •Описание архитектуры учебной ЭВМ
- •1. Структура учебной ЭВМ
- •2. Представление данных в модели ЭВМ
- •3. Система команд учебной ЭВМ
- •3.1. Форматы команд
- •3.2. Способы адресации
- •Таблица 1. Способы адресации
- •3.3. Система операций
- •4. Подсистема прерываний
- •5. Модель функционирования кэш-памяти
- •6. Справочник по командам
- •6.1. Типы адресации, их коды и обозначения
- •Таблица 2. Способы адресации и их обозначение
- •6.2. Система команд
- •Таблица 3. Состав команд учебной ЭВМ
- •Лабораторные работы
- •1. Архитектура ЭВМ и система команд
- •Таблица 4. Варианты задания 1
- •2. Командный цикл процессора
- •3. Программирование разветвляющегося процесса
- •Таблица 5. Функции
- •Таблица 6. Варианты задания 2
- •4. Подпрограммы и стек
- •Таблица 7. Варианты задания 3
ный операнд. В двухсловных командах непосредственный операнд занимает поле
[6:11].
Примем следующие обозначения:
−COP — код операции;
−ADR — адрес операнда в памяти;
−ADC — адрес перехода;
−Data — непосредственный операнд;
−R, R1, R2 — номера регистров;
−TA — тип адресации;
−X – разряд не используется.
На рис. 2. представлены допустимые форматы команд учебной ЭВМ:
0 |
1 |
|
2 |
|
|
3 |
4 |
5 |
|
|
|
1 |
|
COP |
X |
|
X X X |
|
|
|
|||
2 |
|
COP |
TA |
|
ADR |
|
|
|
|||
3 |
|
COP |
TA |
|
X X R |
|
|
|
|||
3a |
|
COP |
TA |
|
X R1 R2 |
|
6 |
11 |
|||
4 |
|
COP |
X |
|
X X X |
|
|
|
|||
|
|
|
|
Data |
|||||||
5 |
|
COP |
|
X |
|
|
ADC |
|
|
|
|
5a |
|
COP |
|
R |
|
|
ADC |
|
|
|
Рис. 2. Форматы команд учебной ЭВМ
3.2. Способы адресации
Различают пять основных способов адресации:
−прямая;
−косвенная;
−непосредственная;
−относительная;
−безадресная.
Сучётом из разновидностей, в учебной ЭВМ реализованы семь способов адресации, приведённые в таблице 1:
|
|
Таблица 1. Способы адресации |
|
|
|
Код TA |
Тип адресации |
Исполнительный адрес |
|
|
|
0 |
Прямая (регистровая) |
ADR (R) |
|
|
|
1 |
Непосредственная |
— |
|
|
|
2 |
Косвенная |
ОЗУ (ADR) [3:5] |
|
|
|
3 |
Относительная |
ADR + RB |
|
|
|
4 |
Косвенно-регистровая |
РОН(R)[3:5] |
|
|
|
4
5 |
Индексная с постинкрементом |
РОН(R)[3:5], R:=R+1 |
|
|
|
6 |
Индексная с преддекрементом |
R:=R-1, РОН(R)[3:5] |
|
|
|
3.3. Система операций
Система команд учебной ЭВМ включает в себя команды следующих классов:
−арифметико-логические и специальные: сложение, вычитание, умножение, деление и др.;
−пересылки и загрузки: чтение, запись, пересылка (из регистра в регистр), помещение в стек, извлечение из стека, загрузка указателя стека, загрузка базового регистра;
−ввода/вывода: ввод и вывод на внешние устройства и в регистры IR и OR;
−передачи управления: безусловный и шесть вариантов условного перехода, вызов подпрограммы, возврат из подпрограммы, цикл, программное прерывание, возврат из прерывания;
−системные: пустая операция, разрешение прерывания, запрет прерывания, останов.
4.Подсистема прерываний
В модели учебной ЭВМ предусмотрен механизм векторных внешних прерываний. Внешние устройства формируют запросы на прерывания, которые поступают на входы контроллера прерываний. При подключении внешнего устройства, способного формировать запрос на прерывание, ему ставится в соответствие номер входа контроллера прерывания – вектор прерывания, принимающий значение в диапазоне от 0 до 9. Контроллер передаёт вектор, соответствующий запросу, процессору, который начинает процедуру обслуживания прерывания.
Механизм прерываний поддерживает таблицу векторов прерываний, которая создаётся в оперативной памяти пользователем (потенциально – операционной системой). Номер строки таблицы соответствует вектору прерывания, а элемент таблицы — ячейка памяти, в трёх младших разрядах которой размещается начальный адрес подпрограммы, обслуживающий прерывание с этим вектором.
Таблица прерываний жёстко фиксирована — она занимает ячейки памяти с адресами 100-109. Таким образом, адрес обработчика с вектором 0 должен располагаться в ячейке 100, с вектором 2 – в ячейке 102 и т.д. При работе с прерываниями не рекомендуется использовать ячейки 100-109 для других целей.
Вызов обработчика прерывания, в отличие от вызова подпрограммы, связан с помещением в стек не только адреса возврата, но и текущего значения вектора флагов. Поэтому последней командой подпрограммы обработки обработчика должна быть команда IRET, которая не только возвращает в PC три младшие разряда ячейки — верхушки стека (как команда RET), но и восстанавливает те значения флагов, которые были в момент перехода на подпрограмму – обработчик прерывания.
Иногда бывает удобно (например, в режиме отладки) иметь возможность вызвать обработчик прерывания непосредственно из программы. Если использовать для этих целей команду CALL, которая помещает в стек только адрес возврата, то команда IRET, размещённая последней в обработчике, может исказить значения флагов. Поэтому в системах команд большинства ЭВМ, в том числе и в данной учебной модели, имеются команды вызова прерываний – INT n.
5