
- •Глава 3. Базовая учебная эвм
- •3.1. Понятие базовой учебной эвм
- •3.2. Структура и порядок функционирования бу эвм
- •3.2.1. Описание арифметико-логического устройства
- •3.2.2. Описание оперативного запоминающего устройства
- •3.2.3. Схема алгоритма бу эвм
- •Элементы устройства управления бу эвм
- •Микропрограмма уа
- •3.3. Группы операций в системе команд
- •Стоп - указание оператора машины.
- •3.4. Общая теория работы управляющего автомата
- •3.4.1. Исходные данные
- •3.4.2. Решение уа с многофазным генератором
- •3.4.2.1. Выборка команды из озу
- •Уа с многофазным генератором. Цикл "Выборка команды"
- •3.4.2.2. Анализ коп и входных данных уа
- •3.4.2.3. Исполнение команды группы ао
- •Alу выполняет вычисления результата
- •3.4.2.5. Исполнение команд передачи управления
- •Организация передачи управления в программе
- •3.4.3. Уа с групповым управлением
- •3.4.3.1. Мнемоническое описание
- •3.4.3.2. Структурная схема уа с групповым управлением
- •3.5. Расширение возможностей системы
- •3.5.1. Обращения к подпрограмме
- •Фрагмент схемы уа для работы с подпрограммой
- •3.5.2. Комплексирование бу эвм с периферией
- •3.5.2.1. Обращение к внешнему устройству
- •Инициализация бук
- •3.5.2.3. Состав внешнего устройства
- •3.5.2.4. Запись данных в регистр ву
- •3.5.2.5. Чтение данных регистров ву
- •3.6. Визуализация функционирования бу эвм
3.3. Группы операций в системе команд
Команда предписывает операцию и указывает операнды, участвующие в операции. Операция задается кодом.
Множество операций разделяется на следующие группы:
1)
Основные;
2) Посылочные; KOP PZ A - формат команды
3) Управления.
Основные операции используются для преобразования информации, то есть выполнения арифметических действий, например, сложить, вычесть, и логических действий, например, И, ИЛИ, исключающее ИЛИ. Именно эта группа операций проверяет условия переходов, указанные в командах управления.
Посылочные операции организуют передачу информации в аккумулятор из памяти или, наоборот, из аккумулятора в память, а также в аккумулятор из устройства ввода и из аккумулятора в устройство вывода.
Операции управления изменяют содержание программного счетчика, являющегося адресом следующей команды. Операции управления могут быть условными и безусловными. Если команда условная, то она сопровождается указанием состояния, которое должно быть предварительно проверено, например, положительное значение результата операции и др. Такие операции вызывают переход к новому адресу и делают возможным непрерывное выполнение запрограммированных функций.
АО - арифметические операции, выполняют сложение, вычитание, умножение, деление содержимого итогового регистра АЛУ и R АЛУ. Если АО имеют признак PZ=1, то есть 01.1.А, 02.1.А, 03.1.А, 04.1.А, то происходит запись с итогового регистра АЛУ в память по адресу, указанному в поле адреса. Если же признак 0, то результат арифметической операции остается на итоговом регистре АЛУ (PZ=0).
ПО - посылочные операции (код 05.PZ.А). Выполняют обмен между памятью системы (RS) и АЛУ (RG). Направление обмена определено признаком засылки (PZ). Для PZ = 1 (код 05.1.А) передача типа ОЗУ[A]:= RG, происходит запись содержимого регистра RG в ОЗУ по адресу А. При PZ=0 (код 05.0.А) - обмен RG:= ОЗУ[A].
БП - безусловный переход (код 06.PZ.А) выполняет переход к адресу ОЗУ, указанному непосредственно в команде, независимо от значения признака PZ (СТАК:=A ).
ЗН - переход по знаку результата (код 07.PZ.А). Выполняет условный переход к адресу программной памяти (СТАК:=А) по знаку результата в зависимости от кода PZ и значения признака ZNAK, формируемого при обращении к АЛУ. Если код PZ совпадает со значением признака ZNAK: 0 - для положительного, 1 - для отрицательного значения итогового регистра АЛУ, то выполняется переход к команде с адресом А. В противном случае сохраняется естественный порядок следования команд, то есть СТАК:=СТАК+1.
НУ - переход по нулевому признаку (код 08.PZ.А). Выполняет условный переход к адресу ОЗУ (СТАК:= А), если результат итогового регистра АЛУ совпадает со значением признака PZ : 0 - когда на итоговом регистре не нулевой результат, 1 - нулевой, то осуществляется переход к команде с адресом А (СТАК:= А), иначе СТАК:=СТАК+1.
HALT - останов, код 10000 - конец программы.
Стоп - указание оператора машины.
Таблица 3.1
Группы операций |
|
КОП |
PZ |
Действие |
Арифметические операции (АО)
KOP.PZ.A |
+ + |
01 01 |
0 1 |
RG:= RG + ОЗУ (A) RG:= RG + ОЗУ (A), ОЗУ (A):= RG; |
- - |
02 02 |
0 1 |
RG:= RG - ОЗУ (A) RG:= RG - ОЗУ (A), ОЗУ (A):= RG; | |
* * |
03 03 |
0 1 |
RG:= RG * ОЗУ (A) RG:= RG * ОЗУ (A), ОЗУ (A):= RG; | |
/ / |
04 04 |
0 1 |
RG:= RG / ОЗУ (A) RG:= RG / ОЗУ (A), ОЗУ (A):= RG; | |
Посылочные операции (ПО) |
MOV |
05 05 |
0 1 |
RG:= ОЗУ (A) ОЗУ (A):= RG; |
Таблица 3.2
Группы операций |
|
КОП |
PZ |
Действие |
Безусловный переход (БП) |
BR |
06 |
0 |
CTAK := A |
Переход по знаку результата (ЗН) |
BPL
BMI |
07
07 |
0
1 |
СТАК := A, Если PZ = ЗНАК = 0 СТАК:= СТАК + 1, Если PZ <> ЗНАК; СТАК:= A , Если PZ = ЗНАК = 1 СТАК:= СТАК + 1, Если PZ <> ЗНАК; |
Переход по нулевому результату (НУ) |
BNE
BEQ |
08
08 |
0
1 |
СТАК:= A, Если PZ = НУЛЬ = 0 СТАК:= СТАК + 1, Если PZ <> НУЛЬ; СТАК:= A, Если PZ = НУЛЬ = 1 СТАК:= СТАК + 1, Если PZ <> НУЛЬ; |
Таблица 3.3
Группы операций |
|
КОП |
PZ |
Адрес |
Действие |
Подпрограмма (ПП)
Обращение к ПП Возврат из ПП |
JSR RTS |
09 09 |
0 1 |
АА 00 |
ST1:= СТАК ,СТАК:= A; СТАК:= ST1; |
Останов |
HALT |
10 |
0 |
00 |
Прекращение работы; |
Внешнее устройство (ВУ) Ввод из ВУ Вывод в ВУ |
GVV GVIV |
11 11 |
0 1 |
АА АА |
RG:= ВУ (A); ВУ (A):= RG; |
В данной модели, в отличие от реального процессора, нет перехода по переполнению. Вследствие того, что модель является учебной, главной целью стоит обучение пользователя основам построения и принципам работы ЭВМ /14/.
В процессе работы модели происходит проверка на переполнение итогового регистра АЛУ. Если содержимое АКК превышает число 999 или меньше -999, то прерывания программы не происходит, как в реальном процессоре, а пользователь может продолжить обучение на модели, но уже с двумя нижними разрядами от значения, находившегося на итоговом регистре АЛУ или, если нужен точный результат, ввести программу заново. Поэтому для модели учебной ЭВМ нет необходимости в операции – "переход по переполнению".