Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ВМСиС (часть1).doc
Скачиваний:
32
Добавлен:
31.08.2019
Размер:
1.43 Mб
Скачать

Методические указания к работе

Общая структура процессора с микропрограммным устройством управления (УУ) контроллера МТ1804, представлена на рис. 7. Основной функцией УУ является извлечение микрокоманд из управляющего запоминающего устройства (УЗУ) в соответствии с реализуемым алгоритмом. Основным элементом УУ является схема формирования следующего адреса микрокоманды (СФСАМК), реализуемая на ИС К1804ВУ1.

Внутренняя структура ИС К1804ВУ1 приведена на рис. 8.

Назначение схемы – формирование адреса микрокоманды на выходах A3,..A0. Адрес микрокоманды ИС К1804ВУ1 формирует из 4 возможных источников:

  1. Выводы R3,..,R0 – на них подается адрес, задаваемый седьмой тетрадой МК, который используется при ветвлениях.

  2. Выводы P (P3,..,P0) – на которые подается адрес начальной микрокоманды из микропрограммы.

  3. СМК (счетчик микрокоманд) – этот источник используется при переходе от одной МК к другой, расположенные последовательно в ячейках памяти.

  4. СТЕК (стековая память) – используется при вызове и возврате из микроподпрограмм или организации циклов.

рис. 7 Общая структура процессора с микропрограммным устройством управления

Источник адреса определяется мультиплексором MS, который коммутирует источники адреса в соответствии с кодов на входах S1,S0 (00-СМК, 01-R, 10- СТЕК, 11-P).

СТЕК- представляет собой память "магазинного" типа объемом 4*4 бита и предназначена для хранения адресов МК (возврата из подпрограмм или цикла). Управление стеком осуществляется сигналами:

- разрешение стека; PUP – операция со стеком (0 – вытолкнуть из стека; 1 – записать в стек).

Входы OR используются для изменения отдельных разрядов адреса по схеме "ИЛИ". Вход Z позволяет обнулить адрес МК.

В зависимости от значений сигналов на линиях S0, S1, PUP, схемой генерируется та или иная команда перехода в микропрограмме.

Для реализации условных переходов используется дополнительная схема ПЗУ ( ПЛМ) формирующая сигналы S0, S1, PUP, в соответствии с сигналами признаками результата из АЛУ (см рис. 9).

Для выполнения лабораторной работы необходимо воспользоваться методическими указаниями к работе № 3, где в таблицах приведены формат и назначение битов микрокоманды.

При организации микропрограмм в микрокоманде указывается информация об источнике адреса следующей микрокоманды. Поля 6 и 7 (см. табл. 160 в лаб. работе № 3) МК служат для этих целей. Поле 7 содержит непосредственный адрес перехода, а поле 6 служит для управления следующим адресом МК. Назначение разрядов поля 6 приведено в табл. 237.

рис. 8 Структура ИС К1804ВУ1

рис. 9. Схема управления переходами в УУ.

табл. 237

P3P2P1P0

Вид перехода

0 0 0 0

Переход, если F # 0

0 0 0 1

Безусловный переход

0 0 1 0

Продолжить

0 0 1 1

Переход по вектору

0 1 0 0

Переход к подпрограмме, если F # 0

0 1 0 1

Переход к подпрограмме

0 1 1 0

Возврат из подпрограммы

0 1 1 1

Переход по стеку

1 0 0 0

Окончить цикл и вытолкнуть из стека, если F = 0

1 0 0 1

Загрузить стек (и продолжить)

1 0 1 0

Вытолкнуть из стека (и продолжить)

1 0 1 1

Окончить цикл и вытолкнуть из стека, если С4

1 1 0 0

Переход, если F = 0

1 1 0 1

Переход, если N

1 1 1 0

Переход, если OVR

1 1 1 1

Переход, если С4

табл. 28

вар.

Задания для разработки МП с использованием линейного алгоритма

Загрузить регистры R0,R1,R2. Найти их сумму.

Загрузить регистры R7,R8,R9. Перевести их содержимое в дополнительный код.

Загрузить регистры R3,R4. Выполнить циклический сдвиг влево их содержимого.

Установить в единицу разряды 0,1,2,3 соответственно в регистрах R11-R14.

Загрузить регистры R6=3, R7=6, R8=9. Сложить по модулю 2 регистры R6,R7 с R8. Результаты занести в регистры R10,R11.

R1=1. Заполнить регистры R8–R11 “бегущей” единицей, выполняя команды сдвига регистра R1.

Выполнить циклический сдвиг влево регистров R6=1, R7=5, R8=4, R9=6 и произвести попарное сложение этих регистров: R6=R6+R7, R8=R8+R9.

Регистры R10,R11 сдвинуть соответственно влево и вправо на 2 разряда, а затем найти их разность: R12=R11-R10.

Инвертировать содержимое регистров R14 и R15, а затем сложить их по модулю 2. Результат записать в регистр R0.

Обнулить 2 и 3 разряды соответственно в регистрах R1 и R2, с последующим арифметическим сдвигом этих регистров на 2 разряда влево.

В регистрах R11, R12 установить в “1” 2 и 3 разряды и обнулить 0-е разряды. Найти разность этих регистров: R15=R12-R11.

Выполнить арифметический сдвиг вправо регистра R3. Затем сложить его с R4. Результат инвертировать и занести в R5.

табл. 2924

вар.

Задания для разработки МП с использованием условных переходов

Сложить два числа в регистрах R14,R15 в BCD-коде с десятичной коррекцией результата.

Загрузить регистры R5-R8. Определить максимальное число в этих регистрах и записать его в R15.

Загрузить регистры R1,R2,R3, определить наименьшее число, инвертировать его и поместить в R15.

Загрузить регистры R3,R4. Если R3=0, то R4= , иначе R4=2R4; найти R6=R4+R3.

Если R58, то инвертировать старший разряд R5 и поместить в Q, иначе Q=R5+1. Найти R12=R5+Q.

Загрузить регистры R12,R13. Найти R0=R12+R13, если R0=15, то перевести R13 в дополнительный код и пересчитать R0.

К минимальному числу из чисел, хранящихся в регистрах R7 и R8, прибавить 7; в максимальном инвертировать старший разряд.

Если одно из чисел, хранящихся в регистрах R10 и R11, равно 0, то в R8 занести константу 10, иначе к содержимому R9 прибавить 6.

Если в регистре R9 число четное, то выполнить циклический сдвиг влево на два разряда, иначе R9=R9+R15.

Если оба числа в регистрах R4 и R5 меньше 6, то провести обмен данными регистров, иначе обнулить в R4 и R5 все четные разряды.

Если в регистре R11 число нечетное, то инвертировать его и выполнить арифметический сдвиг вправо, иначе R12=R11V R14.

Если одно из значений в R8 или R9, имеет старший разряд равный 1, то найти разность R6=R7-R6, иначе выполнить циклический сдвиг двойной длины влево и вправо соответственно регистров R8 и R9.

табл. 30

вар.

Задания для разработки МП с использованием циклов

Найти дополнительный код содержимого регистра R5 и поместить его в R0, путем суммирования R5 с “1” до тех пор, пока не появится переполнение.

Найти произведение R0=R2*3, вычитая в цикле из R2 “1” и суммируя в регистре результата R3 число 3 с собой до тех пор, пока R2 не станет равным 0.

Найти R0=R8&Q, если Q=R7*R8. (Организовать цикл при нахождении произведения, заменив его сложением)

Найти максимальную степень 2, на которую делится содержимое регистра R2.

Составить МП, моделирующую генератор, формирующий пачки импульсов в виде меандра. Промежуток между пачками 14 тактов.

Составить МП, моделирующую двоично-десятичный счетчик импульсов на базе регистра R7.

Смоделировать счетчик по модулю 12 на базе регистра R8.

Выполнить двойной циклический сдвиг регистров R7,Q на 5 разрядов влево.

Подсчитать количество 0 и 1 в регистре R7. Результат поместить в R0 и R1.

Загрузить регистр R1, сформировать задержку времени длительностью 11 тактов после чего загрузить регистр R2

Возвести в квадрат содержимое регистра R4. Результат поместить в регистры R7 и Q.

Выполнить деление числа, хранящегося в регистре R13 на число в регистре R5 (заменив деление вычитанием). Результат поместить в R0.

Табл. 31

вар.

Задания для разработки МП с использованием подпрограмм

Найти сумму максимальных чисел из попарно рассматриваемых регистров R0,R1 и R2,R3; результат поместить в R6.

п/п: определение максимального из двух чисел Ri и Ri+1.

К содержимому регистров R5,R6,R7 прибавить соответственно константы 3,10,12.

п/п: суммирование Ri и константы.

Инвертировать 0,1,2 разряды в регистрах R6,R7,R8 соответственно.

п/п: инвертирование i-го разряда регистра Ri.

Найти R6=(R0-R1)+(R2-R3)+(R4-R5).

п/п: Ri–Ri+1.

Найти R6=max{R0,R1} - max{R3,R4}.

п/п: max{Ri,Ri+1 }.

Найти сумму R13=R10/4-R11/4-R12/4.

п/п: Ri/4.

Найти R0=R3*4-R4*4-R5*4.

п/п: Ri*4.

Инвертировать, а затем сдвинуть влево на два разряда содержимое регистров R1 и R2.

п/п: инвертирование и сдвиг регистра Ri.

Подсчитать количество четных и нечетных чисел в регистрах R13-R15.

п/п: проверка содержимого Ri

Преобразовать числа в регистрах R6,R7 в двоично-десятичный код и поместить результаты соответственно в R10,R11 и R12,R13.

п/п: преобразование Ri в BCD–код.

Подсчитать количество нулей в регистрах R7,R8 результат поместить в R0.

п/п: подсчет количества нулей в регистре Ri.

Преобразовать числа в регистрах R3 и R4 в дополнительный код.

п/п: получение обратного кода числа в регистре Ri.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]