Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Метод_Практика_Основи-програм-інженерії_(1+3кур...doc
Скачиваний:
7
Добавлен:
07.05.2019
Размер:
7 Mб
Скачать

5.1.1.1 Множення чисел з фіксованою комою у прямому коді

Запишем машинное изображение множимого і множителя в форме с фиксированной запятой в прямом коде. Anp=SgA,α1α2...αn; Bпр=SgB,b1b2...bn. Тогда, их произведение запишется как Cnp=Sgc,с1с2...сn, где Sgc= SgASgB, где  - знак сложения по mod2. (1)

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

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

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

Решение: Определяется знак произведения 1 0 =1

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

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

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

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

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

-оператор   сдвига содержимого, Наприклад, сдвиг регистра А вправо на один разряд;

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

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

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

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

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

5.1.1.2 Множення чисел з плаваючою комою

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

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

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

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

Приклад. А= – 0,11001*2–-3; В=0,10011*21

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

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

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

Примечание. Точки, разделяющие знак мантиссы, мантиссу, знак порядка, порядок в машинном коде не проставляются.

5.1.2 Множення чисел у додатковому коді

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

5.1.2.1 Множення чисел з в доповнювальному коді при позитивному множнику

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

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

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

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

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