Умножение прямых кодов чисел


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

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

Пример.

[А]пр = 0,110001, [РА]пр = 1,011;

[В]пр = 1,100101, [РВ]пр = 0,101;

С = А ´ В.

Занесем операнды на регистры.

; .

 

1. Определение знака произведения.

ЗнС = ЗнА Å ЗнВ = 0 Å 1 = 1.

.

 

2. Определение порядка произведения.

РС = РА + РВ.

Выполним сложение порядков в модифицированном дополнительном коде.

+

 

3. Умножение мантисс.

1. +

2. +

3. +

(окончание примера на следующей странице)

 

4. +

5. +

6. +

Окр. +

Отбросим дополнительный седьмой разряд и выполним проверку правильности умножения в десятичной системе счисления.

С = 0,011100(2) = 1/4 + 1/8 + 1/16 = 0,4375(10);

А´|В|= 0,110001(2) ´ 0,100101(2) = 0,765625(10) ´ 0,578125(10) » 0,4426(10).

Таким образом, погрешность составляет 0,0051, т.е. меньше половины веса шестого разряда.

 

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

Нормализация: ; ;

Окончательно

 

Как было сказано ранее, умножение можно выполнять не только младшими, но и старшими разрядами вперед. Для этого следует выполнить n циклов умножения по числу разрядов множителя. Каждый цикл распадается на два такта. В первом такте регистр множимого сдвигается на один разряд вправо, регистр множителя сдвигается на один разряд влево, сумматор в обоих тактах неподвижен. Во втором такте выполняется арифметическая операция сложения: если в знаковом разряде множителя содержится единица, то во втором такте к содержимому сумматора прибавляется множимое, в противном случае к сумматору прибавляется ноль. Такт суммирования очередного частичного произведения с нулем можно пропускать.

Следует помнить, что сумматор и регистр множимого должны иметь дополнительные разряды, так как в результате сдвига вправо множимое теряет значащие разряды. Количество дополнительных разрядов k должно удовлетворять следующему неравенству:

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

 

Пример.

[А]пр = 0,110001, [РА]пр = 1,011;

[В]пр = 1,100101, [РВ]пр = 0,001;

С = А ´ В.

 

Занесем операнды на регистры, при этом для удобства учтем дополнительные разряды, число которых определяется подбором. Учитывая, что число основных разрядов , достаточно будет ввести дополнительных разряда, поскольку .

; .

 

1. Определение знака произведения.

ЗнС = ЗнА Å ЗнВ = 0 Å 1 = 1.

.

 

2. Определение порядка произведения.

РС = РА + РВ.

Выполним сложение порядков в модифицированном дополнительном коде.

+

В прямом коде порядок произведения может быть записан как .

3. Умножение мантисс.

1.

2.

3.

4.

5.

6.

Окр. +

 

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

Нормализация: ; ;

Окончательно .

 



Дата добавления: 2020-02-05; просмотров: 570;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.016 сек.