Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

V-114 / Дискретная математикаdick

.doc
Скачиваний:
20
Добавлен:
15.06.2014
Размер:
188.93 Кб
Скачать

ОМСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

КАФЕДРА Информатики и вычислительной техники

КУРСОВОЙ ПРОЕКТ

Тема:Умножение чисел со сдвигом в сторону младших разрядов и

деление чисел без восстановления остатка в

модифицированных дополнительных кодах с фиксированной запятой”

ВЫПОЛНИЛ: студент гр. В-114

Безверхий Д.А.

РУКОВОДИТЕЛЬ: к.т.н., доцент

Червенчук И.В.

ОМСК - 2005

СОДЕРЖАНИЕ

  1. Описание алгоритмов……………………………………………………….3

  2. Блок-схема алгоритмов……………………………………………………..4

  3. Структура операционных устройств………………………………………6

  4. Моделирование работы алгоритмов на ЭВМ……………………………..8

  5. Список используемой литературы……… ………………………………10

  6. Приложения:

а) Текст программы………………………………………….11

б) Примеры…………………………………………………...

ОПИСАНИЕ АЛГОРИТМА

Умножение

Выполнение операции умножения чисел сводится к сложению всех частных произведений, полученных путем умножения множимого на значение соответствующего разряда множителя. Вначале делается проверка на ноль, а потом для получения этой суммы выполняется n-2 циклов, в каждом из которых имеется 2 такта:

    1. Анализируется младший разряд множителя и если он равен единице, то к содержимому сумматора прибавляется множимое

    2. Содержимое регистра множителя и сумматора сдвигается вправо на один разряд, (сдвиг производится модифицированный: в левом знаковом разряде значение сохраняется).

Поскольку перемножаются дополнительные коды, для получения правильного результата при отрицательном множителе произведение должно быть скорректировано. Это объясняется тем, что отрицательный множитель B` в цифровых разрядах содержит величину (1-B`). После выполнения (n-2) циклов на сумматоре будет получена величина:

C=A  B` = A(1-B`) = A – AB`

В которой истинное произведение представлено слагаемым AB`. Следовательно, в ((n-2)+1)-м цикле к сумматору необходимо прибавить величину (-A). Далее производится округление результата путем добавления единицы к (n+1)-му разряду сумматора.

Деление без восстановления

Выполнение операции деления чисел, представленных с фиксированной запятой, сводится к нахождению всех разностей делимого и делителя. Для этого в сумматор записывается делимое, делитель и частное располагаются в соответствующих регистрах. Происходит проверка условия А>В, чтобы не произошло переполнение разрядной сетки. Перед началом деления в младший разряд регистра частного записывается единица, если знак делимого равен знаку делителя, и нуль – в противном случае. Затем выполняется (n-2) цикла, каждый из которых содержит два такта:

  1. содержимое сумматора и регистра частного сдвигается на один разряд влево.

  2. из сумматора вычитается делитель, если (n-1)-я цифра частного равна единице, в противном случае производится сложение сумматора и содержимого регистра делителя.

Очередная цифра частного равна единице, если знак сумматора равен знаку делителя, и нулю – при различных знаках на сумматоре и регистре делителя.

После выполнения деления нужно выполнить коррекцию, заключающуюся в сложении содержимого регистра частного с поправкой, которая равна 1,00..0 при равенстве знаков делимого и делителя, и 1,00..01 – в противном случае.

БЛОК-СХЕМА АЛГОРИТМА

Блок схема работы УА для выполнения алгоритма умножения чисел со сдвигом в сторону младших разрядов:

Блок схема работы УА для выполнения алгоритма деления чисел без восстановления остатка:

Умножение чисел

Ввод исходных чисел A (PA) B (PB) производится соответственно в регистры Rg1, Rg2 (бл. 1), сразу же делается проверка операндов на ноль (бл. 2,3), так же устанавливается счетчик, значение которого равно N-2, где N количество разрядов, обнуляется сумматор C (MC) (бл. 4). Далее сравнивается с единицей младший разряд множителя (бл. 5), если он равен единице, то в сумматор заносится множимое (бл. 6), в противном случае сразу же делается сдвиг сумматора и множителя (бл. 7). Счетчик уменьшается на единицу (бл. 7). Цикл продолжается пока проверка счетчика на ноль (бл. 8), не даст положительный результат. Далее делается переход к проверке отрицательный ли множитель (бл. 9), путем сравнения младшего разряда множителя с единицей. В случае отрицательного множителя делается корректировка сумматора (бл. 10). Производится округление ответа путем прибавления единицы к (n-1) разряду (бл. 11). Получение ответа (бл. 12).

Деление чисел

Ввод исходных чисел происходит следующим образом: А (МА) делимое заносится в сумматор Sm (бл. 0), а делитель заносится в регистр Rg (бл. 0). Счетчик С устанавливается на n-2 (бл. 1). Перед началом деления нужно выполнить проверку условия А < В, т.е. делимое должно быть меньше делителя, иначе произойдет переполнение разрядной сетки (результат больше единицы) (бл. 2). Перед началом деления в младший разряд регистра частного RgX записывается единица, если знак делимого равен знаку делителя, и нуль – в противном случае (бл. 3,4,5). Начинается цикл со счетчиком. Делается сдвиг сумматора и регистра частного влево на один разряд и счетчик цикла уменьшается на единицу (бл. 6). Из сумматора вычитается делитель, если (n-1)я цифра частного равна единице, в противном случае производится сложение сумматора и содержимого регистра делителя (бл. 7,8,9). Сравниваются знаки регистра делителя и сумматора, если они одинаковы, то очередная цифра частного равна единице. В противном случае следующая цифра частного равна нулю(бл. 10,11,12). Цикл продолжается пока проверка счетчика на ноль(бл. 13), не даст положительный результат. Далее делается корректировка, заключающуюся в сложении содержимого регистра частного с поправкой, которая равна 1,00..0 при равенстве знаков делимого и делителя, и 1,00..01 – в противном случае (бл. 14,15,16). Вывод результата (бл. 17).

СТРУКТУРА ОПЕРАЦИОННОГО УСТРОЙСТВА

Структурная схема ОА показана на рисунке, при этом использованы микрооперации, выполняемые ОА, и соответственно управляющие сигналы (yi), поступающие из УА для их реализации, которые сведены в таблицу 1. Соответствие оповещающих сигналов (xj) анализируемым логическим условиям показано в таблице 2.

Таблица 1.

Таблица 2.

СТРУКТУРА ОПЕРАЦИОННОГО УСТРОЙСТВА

Структурная схема ОА показана на рисунке, при этом использованы микрооперации, выполняемые ОА, и соответственно управляющие сигналы (yi), поступающие из УА для их реализации, которые сведены в таблицу 1. Соответствие оповещающих сигналов (xj) анализируемым логическим условиям показано в таблице 2.

Таблица 1.

Таблица 2.

МОДЕЛИРОВАНИЕ РАБОТЫ АЛГОРИТМА НА ЭВМ

Для моделирования работы алгоритма на ЭВМ была выбрана среда программирования Turbo Pascal 7.0

Для каждой микрооперации заведена отдельная процедура.

СПИСОК ЛИТЕРАТУРЫ

  1. Основы компьютерной арифметики и логики: Учеб. Пособие / Сост.

Потапов В.И., Шафеева О.П., Червенчук И.В.; Омск: ОмГТУ, 2004 – 170 с.

  1. Моделирование на ЭВМ алгоритмов выполнения арифметических операций и синтез управляющих автоматов: Метод. указания / Сост. Пальянов И.А., Шафеева О.П.; Омск: ОмПИ, 1988. - 36 с.

  2. Б.Н. Иванов Дискретная математика. Алгоритмы и программы: Учеб. пособие. – М.: Лаборатория Базовых Знаний, 2002 – 288 с.: ил.

14

Соседние файлы в папке V-114