Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
учебное пособие по А и ЛО ВТ.doc
Скачиваний:
43
Добавлен:
24.02.2016
Размер:
4.95 Mб
Скачать

Умножение на 2 разряда Мт в дополнительных кодах.

i

i+1

i

i+1

00

11

00

10

01

01

01

10

+4MH

-MH

+4MH

-2MH

В отличие от умножения в прямых кодах преобразованию подвергается не только пара 11, но также и пара 10. Это позволяет упростить анализ кода и формирование преобразованного множителя.

Таблица 2.

I ая пара

i+1ая пара

Преобраз. Пара

Алгоритм

х

y

z

x’

y’

A

Г

0

0

0

0

0

1

6

0

0

1

0

1

2

7

0

1

0

0

1

2

7

0

1

1

1

0

3

8

1

0

0

1

0

4

9

1

0

1

0

1

5

10

1

1

0

0

1

5

10

1

1

1

0

0

1

6

В табл. 2 приведены преобразования i и i+1 пары МT.действия, осущестляемые при выполнении, например, алгоритмов А и Г.

(1) (6)

(2) (7)

(3) (8)

(4) (9)

(5) (10)

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

Рис. 9. Логическая схема формирования сигнала сдвига частичной суммы.

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

Мт = -10110

[Мт]доп= 1.0 10 10

[Мт]допп= 01 01 01 10

При умножении на дополнительную пару (01) происходит вычитание одного множителя , а затем он должен быть добавлен в качестве поправки. Таким образом тратится два такта на выполнение взаимноисключающих операций.

Пример:

Мн = + 0101 умножение выполним согласно

MT = + 1100111 алгоритма Г.

[MH]доп = 0.0101

[MT]доп = 0.1 10 01 11

Анализ пар МTможно производить, начиная от старших (при умножении по алгоритмам В и Г) и от младших разрядов (алгоритмы А и Б).

= 10 10 10 01

[-2Mн]доп = 1.0110 [2Mн]доп = 0.1010

0.0000 00000000

0.0010 10000000 = 2MH∙2-2

0.0010 10000000

1.1111 01100000 = -2MH∙2-4

0.0001 11100000

0.0000 00101000 = 2MH∙2-6

0.0010 00001000

1.1111 11111011 = -MH∙2-8

0.0010 00000011 = [Mн Mт]доп

Пример:

Mн= - 0101 умножение выполним согласно

Mт = -1100111 алгоритма Б.

[Mн]доп = 1.1011

[Mт]доп = 1.0 01 10 01

= 1.0 10 10 01

[2Mн]доп = 1.0110 [-2Mн]доп = 0.1010

0.000000 0000

1.111111 1011 = MH

1.111111 1011

0.000010 1000 = -2MH ∙ 22

0.000010 0011

1.110110 0000 = 2MH ∙ 24

1.111000 0011

0.101000 0000 = -2MH ∙ 26

0.100000 0011 =MH MT