Методические указания
Выполнение пункта 1 задания аналогично пункту 2 лабораторной работы №1. Необходимо помнить, что отрицательные числа в МТ представляются в дополнительном коде.
Микрокоманды реализации арифметических и логических операций формируются на основе таблиц 2 ÷ 4. Контроль за результатами выполнения операций и состоянием флагов осуществляется с помощью светодиодных индикаторов «Данные» при соответствующем положении переключателей «Мультиплексор» Таблица 6.
Для реализации сдвига содержимого РОН необходимо извлечь содержимое этого регистра и переправить его на один из входов АЛУ. Обеспечить выбором второго операнда и типа операции прохождение данных без преобразования через АЛУ и с выхода АЛУ записать со сдвигом в тот же регистр. Вид сдвига определяется битами I8 - I6 (табл. 4) и S1,S0 (табл.5). Каждую сдвиговую операцию необходимо выполнять многократно, контролируя результат сдвига содержимого регистра на индикаторах «Данные», подключенных к выходу Y ЦПЭ.
В данной лабораторной работе во всех микрокомандах поле «Адрес перехода» не заполняется, а в поле «Управление следующим адресом» заносится код – 0010, что обеспечивает последовательное выполнение команд.
Содержание отчета
Таблицы кодов всех команд и комментарии к ним.
Результаты и флаги выполнения операций.
Последовательность изменения содержимого регистров при выполнении сдвиговых операций.
Вопросы и задания для самоконтроля
Каков состав и назначение флагов МП?
Какие функции выполняет АЛУ?
В чем различия простого и арифметического сдвига?
Составьте команду не производящую никакого преобразования – NOP (No OPeratoin).
Составьте команду поразрядной инверсии содержимого одного из регистров.
Составьте команду инверсии знака.
Каким образом одной командой реализовать умножение на 2?
Лабораторная работа №3
Управление последовательностью выполнения микрокоманд
Цель работы
Ознакомление с организацией условных и безусловных переходов. Изучение методов использования стека при организации циклического выполнения команд.
Задание к лабораторной работе
Составить и выполнить программу умножения двух беззнаковых четырехразрядных чисел по блок-схеме приведенной на рис. 5.
Рис. 5. Блок-схема программы умножения.
Методические указания
Необходимую последовательность выполнения команд в МТ обеспечивает УУ, построенное на основе СУАМ К1804ВУ1. В зависимости от содержимого шестой тетрады микрокоманды - «Управление следующим адресом», УУ реализует восемь безусловных и восемь условных переходов к следующей микрокоманде (таблица 8). Предложенная для реализации программа перемножения двух четырех разрядных чисел иллюстрирует возможности МТ в организации условных, безусловных переходов и циклического выполнения микрокоманд.
Если перемножить два четырехразрядных числа в столбик,
то становится очевидным, что программу умножения, располагая из арифметических команд лишь сложением и вычитанием, можно выполнить путем четырехкратного сложением множимого со сдвигом. При циклическом выполнении основного фрагмента программы умножения, если в очередном разряде множителя, начиная со старшего, присутствует логическая единица, то сумма сдвигается влево на один разряд и множимое прибавляется к сумме. Если же в очередном разряде множителя содержится ноль, то производится только сдвиг суммы влево.
В программе умножения сомножители загружаются в регистры R0 и R1, для хранения результата умножения используется регистровая пара R3 и RQ (R3 – старший полубайт). На основе регистра R2 организован счетчик количества циклов сложения со сдвигом множимого. Микрокоманды, начиная с 0 по 4, осуществляют загрузку исходных данных (R0-R2) и очистку регистров предназначенных для хранения результата умножения (R3, RQ). Микрокоманда 5 осуществляет проверку содержимого старшего разряда множителя (флаг F3). В микрокоманде 6 выполняется сдвиг двойной длины суммы (R3, RQ) влево на один разряд и при установленном флаге F3 (сформирован в 5 операции) переход к микрокомандам 11-14. Микрокоманды 11-14 выполняют операцию прибавления множимого к регистрам результата (R3, RQ) с учетом переноса в старшую тетраду С4. Циклическое выполнение команд с 5 по 8 организовать с использованием стека. Чтение результата умножения обеспечивают микрокоманды 9, 10.
Содержание отчета
Таблицы кодов всех команд и комментарии к ним.
Результаты и флаги выполнения каждой операций в каждом цикле.
Вопросы и задания для самоконтроля
Объясните назначение, структуру и принцип работы УУ МТ.
Объясните назначение, структуру и принцип работы СУАМ К1804ВУ1.
В чем заключаются особенности в организации условных переходов при наличии регистра состояния.
Составьте фрагмент программы, выполняющий переход к микрокоманде по адресу 1101 при наличии 1 во втором разряде R7.
Определите несколько способов циклического выполнения команд.
Лабораторная работа №4
Подпрограммы
Цель работы
Изучение возможностей использования подпрограмм.
Задание к лабораторной работе
Составить и выполнить программу подсчета количества единиц содержащихся в трех регистрах общего назначения.
Методические указания
В качестве примера применения подпрограмм в УУ с микропрограммным управлением рассмотрим программу подсчета количества единиц содержащихся в регистрах R0, R1, R2 в соответствии с блок-схемой приведенной на рис. 6.
Рис.6. Блок-схема программы подсчета количества единиц.
Микрокоманды 0 – 4 осуществляют загрузку исходных данных в регистры R0, R1, R2, маски 0001 в R3 и очистку регистра R4 предназначенного для хранения результата выполнения программы. Микрокоманды 5,6,7 выполняют передачу содержимого регистров R0, R1, R2 в регистр R5 и вызывают подпрограмму 9, которая производит подсчет количества единиц в этом регистре. Первая микрокоманда подпрограммы 9 загружает счетчик количества циклов подсчета 4 в R6. В 10 микрокоманде проверяется содержимое младшего разряда R5. Следующая микрокоманда при наличии единицы в младшем разряде (Z == 0)вызывает подпрограмму 15, в которой производится инкремент счетчика количества единиц R4. В микрокомандах 12,13 определяется условия окончания циклов подсчета и выхода из подпрограммы 9. Микрокоманда 8 осуществляет чтение результата выполнения программы.
Содержание отчета
Таблицы кодов всех команд и комментарии к ним.
Результаты и флаги выполнения каждой операций в каждом цикле.
Вопросы и задания для самоконтроля
Какие действия происходят в СУАМ К1804ВУ1 при обращении к подпрограмме и выходе из нее?
Какие сигналы необходимо сформировать на выходах СУАМ S0, S1, , PUP при вызове подпрограммы?
Как изменится содержимое стека при последовательном вызове трех подпрограмм?
В чем состоят ограничения при обращении к подпрограммам?
Порядок работы на микротренажере
Микротренажер, в зависимости от положения переключателя «Загрузка - Работа», может работать в режиме «Загрузка», когда осуществляется ручное программирование микропрограммной памяти, и в режиме «Работа», когда выполняется программа.
Для программирования микропрограммной памяти необходимо:
Переключатель «Загрузка - Работа» установить в положение «Загрузка».
Переключателями «Адрес» в двоичном коде набрать адрес ячейки памяти, в которую будет записываться микрокоманда. Необходимо помнить, что нижнее положение переключателей соответствует логическому «0», а верхнее – логической «1».
Переключателями «Мультиплексор» установить номер тетрады микрокоманды.
Переключателями «Данные» набрать нужный код данных для записи в выбранную тетраду.
Нажав кнопку «Загрузка», произвести запись данных в микрокомандную память выбранной тетрады.
Контроль за записываемой информацией осуществляется по показаниям светодиодных индикаторам «Память».
Пункты 3 - 6 повторить для всех тетрад, устанавливая в соответствующее положение «Мультиплексор».
Для записи следующей микрокоманды необходимо набрать новый адрес ячейки памяти, в которую будет записываться следующая микрокоманда (пункт 2) и повторить пункты 3 - 6.
Для запуска программы необходимо произвести начальную установку (инициализацию), т. е. ввести в РМК микрокоманду, соответствующую начальному адресу программы. Для этого после окончания загрузки программы, переключателями «Адрес» установить значение стартового адреса программы и нажать кнопку «Пуск».
В режиме «Работа» МТ может выполнять программу по шагам или автоматически от внутреннего либо внешнего источника синхроимпульсов.
Для выполнения программы в пошаговом режиме, необходимо установить переключатель «Загрузка – Работа» в положение «Работа», а переключатель «Шаг – Автомат» - в положение «Шаг». При этом синхронизация МТ будет осуществляться от кнопки «Пуск». При однократном нажатии кнопки «Пуск» вырабатывается один синхроимпульс и выполняется одна микрокоманда.
Для автоматического выполнения программы переключатель «Шаг – Автомат» установить в положение «Автомат». Когда переключатель «Внутренний – Внешний» находится в положении «Внутренний», синхронизация осуществляется от встроенного в МТ генератора на частоте 1МГц. В положении переключателя «Внешний» синхронизация МТ осуществляется от внешнего генератора подключенного к клеммам «Генератор», на частоте до 2 МГц. Для выполнения одной микрокоманды необходимо переключатель «Загрузка – Работа» установить в положение «Загрузка», переключателями «Адрес» набрать адрес нужной микрокоманды и нажать кнопку «Пуск» столько раз, сколько раз необходимо выполнить данную команду.
Для контроля за работой МТ используются светодиодные индикаторы, расположенные в верхней части стенда. Светодиодные индикаторы «Память» отражают содержимое ячейки микропрограммной памяти по указанному адресу. Светодиодные индикаторы «Микрокоманда» позволяют контролировать содержимое регистра микрокоманд. Отображение 32-разрядного содержимого ячейки памяти и регистра микрокоманд выполняется по тетрадно. Номер тетрады задается положением переключателей «Мультиплексор» в двоичном коде. Светодиодные индикаторы «Данные» осуществляют индикацию прохождения данных в различных точках МТ. Подключение индикаторов к различным элементам схемы определяются положением переключателей «Мультиплексор» (таблица 6).
Точки подключения индикаторов «Данные» в зависимости от
кода переключателей «Мультиплексор»
Таблица 6
-
Код
«Мультиплексор»
Индикаторы «Данные»
Функция
8
4
2
1
000
Y3
Y2
Y1
Y0
Выход К1804ВУ1
001
Y3
Y2
Y1
Y0
Выход К1804ВС1
010
C4
OVR
F3
Z
Флаги К1804ВС1
101
PQ3
PQ0
PR3
PR0
Входы/выходы сдвигателей К1804ВС1