Всякая команда из системы команд микро ЭВМ представляет собой некоторый набор микроопераций прошитых в ПЗУ микрокоманд, которые выполняются в случае считывания данной команды в регистр команд. При этом отдельные микрооперации попадают в регистр микрокоманд, который по сути дела т выставляет управляющие сигналы ко всем управляемым элементам микро ЭВМ, обеспечивая тем самым корректное выполнение заданной отдельной микрооперации и команды в целом.
Для демонстрации порядка выполнения команд в виде некоторой последовательности микрокоманд рассмотрим формат регистра микрокоманд:
№ п/п | Название | Назначение |
0-3 | UI0 - UI3 | Инструкция для УСА |
4-15 | D0 - D11 | Адрес для перехода в СУАМ |
16-24 | I0 – I8 | Инструкция для МПС |
25 - 32 | A, B | Адресные входы БОД |
33 – 45 | SI0 – SI12 | Операция СУСС |
46 | C0 | Входной перенос в МПС |
47 | Разрешение выдачи с DI | |
48 | Разрешение выдачи с ADR | |
49 | Разрешение выдачи с RON | |
50 | Разрешение выдачи с A, B с Рг.Мк. | |
51 | Разрешение на запись в DO | |
52 | Разрешение выдачи с DO | |
53 | Разрешение на запись в Рг.А | |
54 | Разрешение на выдачу А | |
55 | Обращение к портам ОЗУ | |
56 | Чтение – запись | |
57 | Запрос на PDP | |
58 | Запрет сдвигов |
Таким образом, разрядность регистра микрокоманд – 58 разрядов. Следовательно, для реализации ПЗУ микрокоманд потребуется 15 микросхем 556РТ14.
|
|
Рассмотрим микропрограммную реализацию некоторых команд микро ЭВМ (макрокоманд):
MOV REG, операнд
1) | 1110 | XXXXXXXXXXXX | 011000011 | XXXX | 0000 | XXXXXXXXXXXXX | 1111 011 001 101 |
2) | 1110 | XXXXXXXXXXXX | 011000111 | XXXX | XXXX | XXXXXXXXXXXXX | 0010 111 111 101 |
Аналогичным образом строятся все микрокоманды.
Разработка программы арифметической операции.
Программа вычисления ln x в командах данной микро ЭВМ будет выглядеть следующим образом:
MOV | R1, | 1 | |
MOV | R2, | 0 | |
MOV | R11, | 0 | |
MOV | R3, | 0 | |
MOV | R4, | X | |
DEC | R4 | ||
M6: | MOV | R5, | R4 |
M1: | MOV | R6, | 0 |
MOV | R7, | R1 | |
MOV | R12, | R4 | |
MOV | A0, | R7 | |
SUB | R7 | ||
CMP | 0 | ||
JA | MZ | ||
MOV | R14, | 1 | |
JMP | M3 | ||
MZ: | MOV | R14, | 0 |
M3: | SHL | R12 | |
MOV | R0, | R12 | |
SUB | R7 | ||
CMP | 0 | ||
JA | M4 | ||
SHL | R6 | ||
ADD | R7 | ||
MOV | R12, | R0 | |
JMP | M5 | ||
M4: | SHL | R6 | |
INC | R6 | ||
MOV | R12 | R2 | |
M5: | DEC | R8 | |
MOV | R0, | R8 | |
CMP | 0 | ||
JZ | M6 | ||
MOV | R2, | R6 | |
MOV | R0, | R11 | |
INC | R1 | ||
MOV | R13, | 0 | |
MOV | R9, | R4 | |
MOV | R10, | R5 | |
MOV | R0, | R9 | |
MUL | R10 | ||
MOV | R4, | R0 | |
NEG | R4 | ||
DEC | R3 | ||
MOV | R0, | R3 | |
CMP | 0 | ||
JZ | M7 | ||
JMP | M0 | ||
M7 | |||
END |