Домашнее задание №4. Расширение системы команд ЭВМ.
Цель задания
Изучение микрокоманд базовой ЭВМ, микропрограмм выполнения отдельных команд, а так же овладение навыками составления микропрограмм для новых команд.
Часть I
Напишите последовательность адресов микрокоманд, которые должны быть выполнены при реализации заданного фрагмента программы, начинающегося с команды, расположенной по адресу 002 (перед выполнением программы исполняется команда “Пуск”, очищающая аккумулятор и регистр переноса).
Адрес | Вариант 1 | Вариант 2 | Вариант 3 | Вариант 4 | Вариант 5 | Вариант 6 |
---|---|---|---|---|---|---|
1 | 0 | 1 | 1 | 1 | 1 | 1 |
2 | CMA | INC | DEC | ADD 01 | + BEQ 05 | CMC |
3 | BMI 05 | BLP 05 | BMI 05 | + BPL 05 | NOP | BCS 05 |
4 | NOP | NOP | NOP | NOP | ADD 01 | NOP |
5 | + MOV 01 | + ADD 01 | + ADD 01 | DEC | INC | + ADC 01 |
Результаты сводятся в таблицу вида:
Команда | Машинный цикл | Последовательность адресов микрокоманд |
AND 01 (1001) |
— Выборка команды Исполнение — |
89 01, 02, 03, 04, 05, 06, 07, 0C 1D, 1E, 1F, 20, 21, 24, 25, 26, 35, 36, 37, 8F 88 |
CLC (F300) |
— Выборка команды — |
89 01, 02, 03, 04, 05, 06, 07, 08, 09, 0A, 5E, 61, 67, 68, 69, 79, 7A, 8F 88 |
. . . | . . . | . . . |
В этой таблице символом ”-” отмечены микрокоманды остановки и перехода к циклу “ВЫБОРКА КОМАНДЫ”, используемые при пошаговом выполнении программы.
Кроме того необходимо описать поля шести последних микрокоманд цикла “ИСПОЛНЕНИЕ” команды, отмеченной знаком +. Описания каждой микрокоманды выполнить в виде рисунков:
Часть II
А. Написать вертикальные микрокоманды
Написать завершающие вертикальные микрокоманды цикла “ИСПОЛНЕНИЕ” следующих команд:
Команда 7XXX
- 1 вариант - ЗАГРУЗКА
(записать в аккумулятор содержимое ячейки памяти, на которую указывает адресная часть команды); - 2 вариант - ПЕРЕСЫЛКА СО СБРОСОМ
(записать содержимое аккумулятора в ячейку памяти, на которую указывает адресная часть команды, а затем очистить аккумулятор); - 3 вариант - СРАВНЕНИЕ
(вычесть содержимое аккумулятора из содержимого ячейки памяти, на которую указывает адресная часть команды, и, не изменяя содержимое аккумулятора, установить признаки результата вычитания: C, N, Z); - 4 вариант - ЗАГРУЗКА ДОПОЛНИТЕЛЬНАЯ
(записать в аккумулятор дополнительный код содержимого ячейки, на которую указывает адресная часть команды); - 5 вариант - ПЕРЕСЫЛКА ДОПОЛНИТЕЛЬНАЯ
(записать дополнительный код содержимого аккумулятора в ячейку памяти, на которую указывает адресная часть команды); - 6 вариант - ПЕРЕСЫЛКА УДВОЕННАЯ
(записать в ячейку памяти, на которую указывает адресная часть команды, удвоенное содержимое аккумулятора).
Команда DXXX
Организовать переход к команде, расположенной по адресу, на которую указывает адресная часть команды, если:
- 1 вариант - аккумулятор содержит четное число;
- 2 вариант - аккумулятор содержит нечетное число;
- 3 вариант - аккумулятор содержит число, большее чем 16383;
- 4 вариант - аккумулятор содержит число, меньшее чем -16384;
- 5 вариант - 7-й бит аккумулятора(старший бит младшего байта) равен нулю;
- 6 вариант - 7-й бит аккумулятора равен единице;
Безадресные команды
- 1 вариант - циклический сдвиг влево на 2 разряда (FC00);
- 2 вариант - циклический сдвиг вправо на 2 разряда (FD00);
- 3 вариант - получение дополнительного кода аккумулятора(FE00);
- 4 вариант - запись единицы в аккумулятор(FC00);
- 5 вариант - циклический сдвиг влево с очисткой регистра С (FD00);
- 6 вариант - циклический сдвиг вправо с очисткой регистра С (FЕ00);
Б. Написать тестовые программы
Написать тестовые программы для проверки правильности исполнения всех трех синтезированных команд базовой ЭВМ и подготовиться к выполнению лабораторной работы №8. Тестовые программы должны отвечать следующим требованиям:
- Для синтезированных арифметических и без адресных команд результат их выполнения должен быть зафиксирован в памяти базовой ЭВМ, а не только в регистрах,
- Если проверяемая арифметическая или безадресная команда устанавливает признаки результата (C,Z,N), необходимо проверить правильную установку одного из них, используя соответствующую команду перехода. Результат проверки признака зафиксировать в памяти базовой ЭВМ,
- Для синтезированных команд переходов необходимо проверить команду как при выполнении условия перехода, так и при его невыполнении. Результат проверки в обоих случаях зафиксировать в памяти базовой ЭВМ.
Таким образом, после выполнения правильно разработанной тестовой программы в автоматическом режиме в памяти базовой ЭВМ будет размещена информация, позволяющая однозначно подтвердить правильность выполнения синтезированной команды.
В. При разработке микропрограмм заданных команд следует иметь в виду:
-
В процессе дешифрации команды 7ххх в РА записывается адрес операнда (может использоваться для команд пересылки), а в РД - сам операнд ( может использоваться для команд загрузки и сравнения). Затем осуществляется переход к ячейке памяти микрокоманд ВО, где надо разместить первую синтезируемую микрокоманду команды 7ххх.
-
После выборки команды перехода ххх в РД сохраняется адрес перехода (адресная часть команды), который может быть переписан в СК при выполнении условия перехода. Последняя микрокоманда дешифрации команды Dххх передает управление в ячейку с адресом D0, где надо разместить первую синтезируемую микрокоманду команды Dххх.
-
Когда в процессе дешифрации безадресных команд выясняется, что в 10-м и 11-м разрядах РК содержатся единицы(т.е. выбрана одна из команд:FC00, FD00, FE00 или FF00), управление передается в ячейку с адресом Е0. Здесь должны начинаться микрокоманды дополнительной дешифрации, выделяющие заданную команду путем анализа 9-го и 8-го разрядов РК и передающие управление в свободную область памяти микрокоманд(от Ех до FF), где следует разместить микрокоманды реализации безадресной команды.
-
Все микропрограммы реализуемых команд должны заканчиваться микрокомандой 838F (GOTO ПРЕ(8F)), осуществляющей переход к микрокомандам, завершающим исполнение любой команды базовой микро ЭВМ.
Пример
Для создания команды FF00, которая осуществляет инвертирование содержимого аккумулятора и очистку регистра переноса, можно написать следующую последовательность микрокоманд:
Адрес МП | Микрокоманды | Комментарии | |
E0 | A98F | IF BIT(9,PK)=0 THEN ПРЕ(8F) | К окончанию цикла исполнения, если дешифрируемая команда не FF00 |
E1 | A88F | IF BIT(8,PK)=0 THEN ПРУ(8F) | |
E2 | 1040 | COM(A)=>БР | Инверсия А |
E3 | 4035 | БР=>А | Пересылка результата в А и регистр признаков |
E4 | 4080 | 0=>C | Очистка С |
E5 | 838F | GOTO ПРЕ(8F) | Выход |
Содержание отчета по работе
- Часть I
- Таблицы микрокоманд для каждой команды из части II.A
- Тестовые программы к каждой команде из части II.Б