Деление без восстановления остатка со сдвигом остатка
Категория реферата: Рефераты по информатике, программированию
Теги реферата: скачать доклад, курсовая работа по менеджменту
Добавил(а) на сайт: Krutoj.
Предыдущая страница реферата | 1 2 3 4 5 6 7 | Следующая страница реферата
4 Структурная схема ОА
(Приложение А, лист № 1 )
Для реализации предложенного алгоритма выполнения операции деления необходимы следующие операционные элементы:
1) Рг.А(0-19) – регистр делителя: 4р.- знак, 16р.- мантисса делителя.
2) СМ (0-43) – сумматор: 4р.- знак, 32р.- мантисса делимого,
4р.- переносы.
3) Рг.В(0-19) – регистр частного: 4р.- знак, 16р.- мантисса частного.
4) регистр Рг.К(0-3) – регистр коррекции.
5) счетчик Сч.1 - этот счетчик необходим для формирования тетрады частного.
6) счетчик Сч.2 - этот счетчик необходим для выхода из цикла деления, выход будет осуществлен после того, как будут пройдены все тетрады.
7) счетчик Сч.3 - этот счетчик необходим для выхода из коррекции.
1.5 Разработка граф-схемы алгоритма (ГСА)
(Приложение А, лист № 2,3)
Для реализации любой арифметической операции необходимо знать алгоритм ее выполнения, ниже приводится алгоритм операции деления чисел с фиксированной запятой в коде 8421, 8421+6. Если блоки выполняются последовательно, то ссылки на следующий блок не приводятся.
Таблица 1 - Определение блоков
|Номер блока |Назначение |
|A00(Л2) |Начало. |
|B00(Л2) |Начальная установка: |
| |СМ:=X, Рг.А:=Y, Сч1:=0, Сч2:=0, Сч3:=0, Рг.K:="1010". |
|C00(Л2) |Определяем знак частного путем сложения знаковых разрядов |
| |делимого и делителя по модулю два и заносим его в |
| |Рг.B[16-19]. |
|D00(Л2) |Первое пробное сложение делимого и делителя, делитель в |
| |дополнительном коде. |
|F00(Л2) |Проверяем СМ[40-43]=0000, если Да то на G00(Л2), иначе на |
| |B00(Л3). |
|G00(Л2) |Программа обработки прерываний (АВОСТ). |
| |Выдача сообщения о переполнение. |
|B00(Л3) |Проверяем СМ[22,23]=11, т.е. на наличие запрещенных |
| |комбинаций, если Да то на D00(Л3), иначе на C01(Л3). |
|C01(Л3) |Проверяем СМ[21,23]=11, т.е. на наличие запрещенных |
| |комбинаций, если Да то на D00(Л3), иначе на E00(Л3). |
|D00(Л3) |Коррекция: СМ[20-23]:=СМ[20-23] + Рг.К[0-3]. |
|E00(Л3) |Проверяем СМ[27,28]=11, т.е. на наличие запрещенных |
| |комбинаций, если Да то на G00(Л3), иначе на F01(Л3). |
|F01(Л3) |Проверяем СМ[26,28]=11, т.е. на наличие запрещенных |
| |комбинаций, если Да то на G00(Л3), иначе на B02(Л3). |
|G00(Л3) |Коррекция: СМ[25-28]:=СМ[25-28] + Рг.К[0-3]. |
|B02(Л3) |Проверяем СМ[32,33]=11, т.е. на наличие запрещенных |
| |комбинаций, если Да то на D02(Л3), иначе на C03(Л3). |
|C03(Л3) |Проверяем СМ[31,33]=11, т.е. на наличие запрещенных |
| |комбинаций, если Да то на D02(Л3), иначе на E02(Л3). |
|D02(Л3) |Коррекция: СМ[30-33]:=СМ[30-33] + Рг.К[0-3]. |
|E02(Л3) |Проверяем СМ[37,38]=11, т.е. на наличие запрещенных |
| |комбинаций, если Да то на G02(Л3), иначе на F03(Л3). |
|F03(Л3) |Проверяем СМ[36,38]=11, т.е. на наличие запрещенных |
| |комбинаций, если Да то на G02(Л3), иначе на B04(Л3). |
|G02(Л3) |Коррекция: СМ[35-38]:=СМ[35-38] + Рг.К[0-3]. |
|B04(Л3) |Проверяем СМ[42,43]=11, т.е. на наличие запрещенных |
| |комбинаций, если Да то на D04(Л3), иначе на C05(Л3). |
|C05(Л3) |Проверяем СМ[41,43]=11, т.е. на наличие запрещенных |
| |комбинаций, если Да то на D04(Л3), иначе на E04(Л3). |
|D04(Л3) |Коррекция: СМ[40-43]:=СМ[40-43] + Рг.К[0-3]. |
|E04(Л3) |Проверяем Сч.3=0, если Да, то переходим на B04(Л2), иначе |
| |на F05(Л3). |
|F05(Л3) |Проверяем Сч.3=1, если Да, то переходим на B02(Л2), иначе |
| |на B06(Л2). |
|B04(Л2) |Сдвигаем регистр СМ влево на 5 разрядов. |
| |В Сч.1 заносим 9. |
|C04(Л2) |Сч.1:=9. |
|D04(Л2) |Сложение делимого и делителя, делитель в прямом коде. |
|F04(Л2) |Сч.3:=1. |
| |Переход на коррекцию. |
|B02(Л2) |Проверяем СМ[40-43]=0000, если Да то на C02(Л2), иначе на |
| |C03(Л2). |
|C03(Л2) |Декремент Сч1 (отнимаем от текущей тетрады частного 1). |
|C02(Л2) |Инкремент Сч.2 (переход к следущей тетраде частного). |
| |Присваиваем Рг.В[0-3] значение Сч1. |
| |Сдвигаем регистр Рг.В влево на 4 разряда. |
|D02(Л2) |Сдвигаем регистр СМ влево на 5 разрядов. |
| |В Сч.1 заносим 1. |
|E02(Л2) |Сложение делимого и делителя, делитель в дополнительном |
| |коде. |
|G02(Л2) |Сч.3:=2. |
| |Переход на коррекцию. |
|B06(Л2) |Проверяем СМ[40-43]=0000, если Да то на C06(Л2), иначе на |
| |C07(Л2). |
| C06(Л2) |Инкремент Сч1 (прибавляем к текущей тетраде частного 1). |
| |Инкремент Сч.2 (переход к следущей тетраде частного). |
|C07(Л2) |Присваиваем Рг.В[0-3] значение Сч1. |
| |Сдвигаем регистр Рг.В влево на 4 разряда. |
| D07(Л2) |Проверяем Сч.2=0, если Да то на E07(Л2), иначе на C04(Л2). |
| E07(Л2) |Выводим частное, т.е. Z:=Рг.В. |
| F07(Л2) |Конец. |
1.6 Описание моделирующей программы
(ПРИЛОЖЕНИЕ В)
Программа операции деления без восстановления остатка со сдвигом
остатка с фиксированной точкой в коде 8421, 8421+6 выполнена на языке
программирования ассемблера. В моделирующей программе регистрами Рг.А,
Рг.В, Рг.К, а так же счетчиками СЧ.1 и СЧ.2 СЧ.3 являются регистры самой
ЭВМ и оперативная память.
Описание программы построчно:
1 – 22 – Связывание данных с сегментом данных DS, очистка экрана, приглашение к вводу двух чисел, запись введенных чисел по адресам в
сегменте данных.
23 – 28 – Вычисление знака частного.
29 – 72 – Вычисление количества тетрад, подготовка под знак целой тетрады, вызов процедур преобразования из ASCII в байты делимого и делителя, пробное
сложение, проверка на переполнение.
73 – 79 – Вывод сообщения о переполнении и переход на выход из программы.
80 – 103 – Вызов процедуры преобразования конечного результата из байта в
ASCII, вывод знакового разряда и вывод результата, стандартный выход из
программы.
104 – 131 – Процедура перевода делимого из ASCII в BIN.
132 – 159 – Процедура перевода делимого из ASCII в BIN.
160 – 176 – Процедура перевода делителя в дополнительный код.
177 – 243 – Процедура сложения тетрад делимого и делителя с учетом
возникающих межтетрадных переносов, процедура проверки на коррекцию.
244 – 267 – Процедура перевода конечного результата из байта в ASCII.
268 – 277 – Описание сегмента данных, закрытие кодового сегмента.
7 Оценка времени выполнения операции и оценка аппаратных затрат
ОА
Время выполнения операции определяется формулой:
Топ. дел. = к*Т’
Т’ = Lср.*Топ. сл.+ 4tсдв.
Топ. сл.= tсл.+tсл.*pкор.
Lср.= 5,5 – среднее количество шагов, т.к. самое минимальное значение = l, а максимальное значение = 10.
pкор= вероятность коррекции, для 8421 равна 0,5
tсл.=4*tсдв.
Рекомендуем скачать другие рефераты по теме: читать рассказы, отзыв на дипломную работу.
Предыдущая страница реферата | 1 2 3 4 5 6 7 | Следующая страница реферата