Skip to Content
Работы к Разделу 3Домашнее задание 4

Домашнее задание №4. Расширение системы команд ЭВМ.

Цель задания

Изучение микрокоманд базовой ЭВМ, микропрограмм выполнения отдельных команд, а так же овладение навыками составления микропрограмм для новых команд.

Часть I

Напишите последовательность адресов микрокоманд, которые должны быть выполнены при реализации заданного фрагмента программы, начинающегося с команды, расположенной по адресу 002 (перед выполнением программы исполняется команда “Пуск”, очищающая аккумулятор и регистр переноса).

АдресВариант 1Вариант 2Вариант 3Вариант 4Вариант 5Вариант 6
1011111
2CMAINCDECADD 01+ BEQ 05CMC
3BMI 05BLP 05BMI 05+ BPL 05NOPBCS 05
4NOPNOPNOPNOPADD 01NOP
5+ MOV 01+ ADD 01+ ADD 01DECINC+ 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. Тестовые программы должны отвечать следующим требованиям:

  1. Для синтезированных арифметических и без адресных команд результат их выполнения должен быть зафиксирован в памяти базовой ЭВМ, а не только в регистрах,
  2. Если проверяемая арифметическая или безадресная команда устанавливает признаки результата (C,Z,N), необходимо проверить правильную установку одного из них, используя соответствующую команду перехода. Результат проверки признака зафиксировать в памяти базовой ЭВМ,
  3. Для синтезированных команд переходов необходимо проверить команду как при выполнении условия перехода, так и при его невыполнении. Результат проверки в обоих случаях зафиксировать в памяти базовой ЭВМ.

Таким образом, после выполнения правильно разработанной тестовой программы в автоматическом режиме в памяти базовой ЭВМ будет размещена информация, позволяющая однозначно подтвердить правильность выполнения синтезированной команды.

В. При разработке микропрограмм заданных команд следует иметь в виду:

  1. В процессе дешифрации команды 7ххх в РА записывается адрес операнда (может использоваться для команд пересылки), а в РД - сам операнд ( может использоваться для команд загрузки и сравнения). Затем осуществляется переход к ячейке памяти микрокоманд ВО, где надо разместить первую синтезируемую микрокоманду команды 7ххх.

  2. После выборки команды перехода ххх в РД сохраняется адрес перехода (адресная часть команды), который может быть переписан в СК при выполнении условия перехода. Последняя микрокоманда дешифрации команды Dххх передает управление в ячейку с адресом D0, где надо разместить первую синтезируемую микрокоманду команды Dххх.

  3. Когда в процессе дешифрации безадресных команд выясняется, что в 10-м и 11-м разрядах РК содержатся единицы(т.е. выбрана одна из команд:FC00, FD00, FE00 или FF00), управление передается в ячейку с адресом Е0. Здесь должны начинаться микрокоманды дополнительной дешифрации, выделяющие заданную команду путем анализа 9-го и 8-го разрядов РК и передающие управление в свободную область памяти микрокоманд(от Ех до FF), где следует разместить микрокоманды реализации безадресной команды.

  4. Все микропрограммы реализуемых команд должны заканчиваться микрокомандой 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.Б
Last updated on