Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб_ПТЦА_3.doc
Скачиваний:
8
Добавлен:
09.11.2019
Размер:
2.13 Mб
Скачать
  1. Лабораторная работа №3

  2. УМНОЖЕНИЕ И ДЕЛЕНИЕ БИНАРНЫХ ЧИСЕЛ

Цель работы:

Изучить:

  • Умножение чисел с фиксированной запятой на ДСПК

  • Умножение чисел с плавающей запятой

  • Умножение чисел на ДСДК

  • Деление чисел с фиксированной запятой с восстановлением остатка

  • Деление чисел с фиксированной запятой без восстановлением остатка

  • Деление чисел с плавающей запятой

3.1 Методы умножения бинарных чисел

Операция умножения состоит из ряда последовательных операций сдвига и сложения частных произведений, т.е. операция умножения сводится к сложению частных произведений, которые получаются из множимого с соответствующим сдвигом или нулей, если в разряде множителя "нуль", или множимого, если в разряде множителя 1. Рассмотрим, как производит умножение компьютер.

3.1.1 Умножение чисел с фиксированной запятой на ДСПК

Запишем машинное изображение множимого и множителя в форме с фиксированной запятой в прямом коде. Anp=SgA,α1α2...αn; Bпр=SgB,b1b2...bn. Тогда, их произведение запишется как Cnp=Sgc,с1с2...сn, где Sgc= SgAʘSgB, где ʘ - знак сложения по mod2.

Таким образом, при использовании ДСПК, знак произведения определяется отдельно от цифровой части, затем выполняется операция умножения. Она выполняется в соответствии с заданной структурой множительного устройства (см. например, рисунок 3.1).

Рисунок 3.1-Структурная схема устройства умножения

Умножение начинается с младшего разряда и сдвигается вправо сумма частных произведений.

Пример. Умножить числа Апр = 1,11010 = - 26; Впр, = 0,11001 = 25, С= -650.

Определяется знак произведения 1 ʘ 0 =1

Зададим: 1) сумматор имеет 10 разрядов (без знака).

2) регистры имеют по 5 разрядов (без знака).

Последовательность действий представим таблицей 3.1.

Для упрощения записи таблиц, принимаем следующие условные обозначения:

-оператор := присваивания значения (блоку слева присваивается значение, указанное справа от операнда);

-оператор [ ] сдвига содержимого, например, сдвиг регистра А вправо на один разряд;

-обозначения, например, [См] - содержимое сумматора;

-обозначение И. П. - исходное положение;

-обозначения Апр., Впр. - цифровая часть множимого и множителя в прямом коде.

Если при умножении возникает единица переноса из старшего разряда, то ее сохраняют путем сдвига Σ т.е. необходимо предусматривать в цифровом автомате стробирование сигнала переполнения для выработки сдвига на один разряд.

Этот способ умножения получил наибольшее распространение в практике цифровых автоматов.

3.2 Умножение чисел с плавающей запятой

Так как числа с плавающей запятой представляются мантиссой и порядком, то выполнение операции умножения состоит из двух действий:

-перемножение мантисс;

-сложение порядков.

Результат умножения может получиться денормализованным, поэтому требуется проверка на нормализацию числа и, при необходимости, его нормализация с соответствующей коррекцией порядка результата. Устройство умножения чисел с плавающей запятой представлено автоматом со структурой рисунка 3.2.

Пример. А= – 0,11001*2–-3; В=0,10011*21

Сложение порядков производим в обратном коде, См. - 10 разрядов, Рг. - 5 разрядов. Умножение мантисс приведено в таблице 11.2. Определим значение порядка

РАобр=1,100

РВобр=0,001

РСобр=1,101 РСпр= -0,010

Так как мантисса результата не удовлетворяет нормализации слева, т.е. δ=1,γ=0, то производится сдвиг мантиссы влево на один разряд mC = 1,1110110110 и коррекция порядка

+РСобр=1.101

∆Робр=1.110

11.011

|→ 1

1.100 Рпр= -0,011

Ответ: С= -0,1110110110*2-3

В машинном виде будет соответствовать коду 11.1110110110.11.11, при условии выделения для порядка всего двух разрядов.

3.3 Умножение чисел на дсдк

При положительном множителе можно сформулировать следующий алгоритм умножения чисел на ДСДК.

Если множитель больше "0", то умножение на сумматоре дополнительного модифицированного кода заключается в следующем. Анализируется разряд множителя, начиная с младшего. При ві = 1, к содержимому сумматора добавляется множимое. При ві = 0, к содержимому сумматора ничего не добавляется. После каждого анализа, производится модифицированный сдвиг сумматора и множителя вправо на один разряд.

Пример. Умножить числа А = – 0,10101 = – 21, В=0,10011 =19. Метод 2. ДСДК. Подготовим числа ам.доп. = 11.01011; Вм.доп. = 00.10011 . Сумматор имеет 7 разрядов, РгВ имеет 5 разрядов. Решение представлено таблицей 12.1.

Для уменьшения затрат, часто используют режим экономии аппаратных ресурсов, при этом, результат умножения хранится в сумматоре и в РгВ, передавая при сдвигах младшие разряды сумматора в старшие разряды РгВ. Этим и определяется произведенный нами ранее выбор разрядности устройств.

Результат получен в дополнительном коде со знаком 11. После преобразования его в прямой код, знак сохраняется.

Если множитель отрицательный, то произведение чисел на сумматоре дополнительного кода получается прибавлением к произведению дополнительных кодов сомножителей поправки +1. Это инвертированное , включая и знак с добавлением 1 к младшему разряду.

Таким образом, на сумматоре дополнительного модифицированного кода получаем одновременно знаковую и цифровую части произведения.

Пример. Умножить числа А = – 0,10111 = – 23 и

В= – 0,11001 = – 25 на ДСДК (метод 2). (– 23)*(–25)=575

Подготовительные работы.

Определим Амдоп =11.01001; Вмдоп =11.00111;

поправка = 00,10111.

Решение приведено в таблице 3.2

При выполнении операции умножения, используем режим экономии аппаратных средств, т.е. при сдвиге сумматора информация с младших разрядов переходит в старшие разряды регистра В.

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