Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
эвм лабы.doc
Скачиваний:
80
Добавлен:
30.03.2015
Размер:
801.28 Кб
Скачать

Лабораторная работа № 1

РАЗРАБОТКА И ОТЛАДКА МИКРОПРОГРАММЫ ВЫПОЛНЕНИЯ КОРОТКОЙ АРИФМЕТИЧЕСКОЙ ОПЕРАЦИИ СУММИРОВАНИЯ

Пусть требуется составить и отладить микропрограмму выполнения операции суммирования чисел в прямых кодах для дробных чисел фиксированного формата в системе с фиксированной запятой программным неускоренным методом (код шифра 12111).

На первом этапе разрабатывается структурная схема алгоритма выполнения операции в содержательном описании, возможный вариант которой приведен на рис. 10, где используются следующие обозначения: ЗнA, ЗнB, ЗнС – знаковые биты операндов A, B и результата C; Am, Bm, Cm – модули операндов и результата.

На втором этапе осуществляется отображение алгоритма на множестве микроинструкций БМП К584ВМ1 с предварительным закреплением его внутренних регистров за определенными операндами. Пусть регистры общего назначения распределены следующим образом: РОН0 – для хранения операнда А; РОН1 – для хранения операнда B; РОН2 – для выполнения промежуточных вычислений и хранения конечного результата операции C; РОН3 – для хранения константы вида 10…0; РОН4 – для хранения Am; РОН5 – для хранения Bm. Регистр РР используется для хранения промежуточных значений. В регистре РРР формируется сообщение о наличии или отсутствии ошибок.

Текст микропрограммы выполнения операции суммирования, по рассмотренному алгоритму с использованием символьного языка отладчика «БМП К584ВМ1», приведён в табл. 3.

Таблица 3

Микропрограмма суммирования чисел

Адрес

Микроинструкция

Комментарий

1

2

3

000

РОН0 := ШИНвх

Ввод операнда А

001

РОН1 := ШИНвх

Ввод операнда В

002

РР := !РОН0 + П (П=1)

Если ПАЛУ3, то 35 (Проверка A = 0)

003

РР := !РОН1 + П (П=1)

Если ПАЛУ3, то 37 (Проверка B = 0)

004

РР := !П (П=1)

РР = 0...0

005

РР := СЦП(РР + П) (П = 1)

РР = 10...0

006

РОН3 := РР + П (П = 0)

Формирование константы 10...0

007

РР := !РОН3 + П (П = 0)

РР = 01...1

008

РР := РОН0 and РР

Выделение Аm

009

РОН4 := РР + П (П = 0)

Сохранение Аm

010

РР := !РОН3 + П (П = 0)

РР = 01...1

011

РР := РОН1 and РР

Выделение Вm

012

РОН5 := РР + П (П = 0)

Сохранение Bm

013

РР := РОН0 + П (П = 0)

Пересылка операнда A в РР

014

РР := РОН1 xor РР

Суммирование операндов по mod2

015

РР := СЛЛ(РР + П) (П = 0)

Если !СДЛ1, то 16 иначе 24 (Проверка знаков операндов)

016

РР := РОН5 + П (П = 0)

Пересылка Bm в РР

017

РР := РОН4 + РР + П (П = 0)

Сm = Аm  Вm

018

РОН2 := РР + П (П = 0)

Сохранение Cm

019

РР := СЛЛ(РР + П) (П = 0)

Если !СДЛ1, то 21 иначе 20 (Проверка ЗнC)

Окончание табл. 3

1

2

3

020

РРР := !П (П = 0)

Идти к 40 (Сообщение "Переполнение")

021

РР := РОН0 + П (П = 0)

Пересылка операнда А в РР

022

РР := РОН3 and РР

Формирование ЗнС

023

РОН2 := РОН2 or РР

Идти к 39 (C = ЗнC  Cm)

024

РР := РОН5 + П (П = 0)

Пересылка Am в РР

025

РР := РОН4 - РР - 1 + П (П = 1)

Cm = Am – Bm

026

РОН2 := РР + П (П = 0)

Сохранение Сm

027

РР := !РР + П (П = 0)

Если ПАЛУ3, то 28 иначе 29 (Проверка C = 0)

028

РОН2 := !П (П = 1)

Идти к 39 (C = 0)

029

РР := РОН2 + П (П = 0)

Пересылка Сm в РР

030

РР := СЛЛ(РР + П) (П = 0)

Если !СДЛ1, то 21 иначе 31 (Проверка ЗнC)

031

РР := РОН5 + П (П = 0)

Пересылка Bm в РР

032

РР := РР - РОН4 - 1 + П (П = 1)

Cm = Bm – Am

033

РОН2 := РР + П (П = 0)

Сохранение Cm

034

РР := РОН1 +П (П = 0)

Идти к 22 (Пересылка операнда B в РР)

035

РР := РОН1 + П (П = 0)

Пересылка операнда B в РР

036

РОН2 := РР + П (П = 0)

Идти к 39 (Сохранение операнда B)

037

РР := РОН0 + П (П = 0)

Пересылка операнда A в РР

038

РОН2 := РР + П (П = 0)

Сохранение операнда A

039

РРР := !П (П = 1)

Сообщение "Переполнения нет"

040

ШИНвых := РРР + П (П = 0)

Вывод сообщения

041

ШИНвых := РОН2

Вывод С, "Конец"

В микропрограмме применяется естественная адресация, возможные принудительные передачи управления указаны в колонке «Комментарий». Так, например, в микроинструкции по адресу 2 при выполнении условия П = 1 управление передается микроинструкции по адресу 35, в противном случае – по адресу 3.

При выполнении микроинструкции суммирования и вычитания логическим условием является значение выходного переноса ПАЛУ3 арифметико-логического устройства, а при выполнении микроинструкции сдвига – значение инверсного выходного сигнала сдвига одинарного слова !СДЛ1.

Правильность отображения исходного алгоритма в текст микропрограммы проверяется путём прогона данной микропрограммы на программно-логической модели «БМП К584ВМ1».