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