ВУЗ:
Составители:
70
4.5.4. Алгоритм умножения двоичных дробных чисел
в формате с ФТ
Алгоритм умножения двоичных дробных чисел в формате с ФТ
имеет следующие отличия по отношению к раннее рассмотренным.
Нельзя избавиться от знакового бита множителя, после достижения
счетчиком тактов значения, равного 0, выполнив дополнительный
«n сдвиг» (произведение было бы уменьшено в два раза). Нужно об-
нулить младший бит регистра Р2, например, выполнив операцию по-
разрядной конъюнкции с маской, содержащей 1 во всех битах, кроме
младшего. Рассмотрим пример выполнения такого алгоритма.
Выполнить операцию умножения операндов X и Y на восьмираз-
рядном процессоре в прямом коде (табл. 4.5). Обратите внимание,
что при рассмотрении примера двойной рамкой выделяется значение
младшего бита Р2, который анализируется на шаге 4.
X=0,24
(8)
, Y= – 0,65
(8)
;
Z=X*Y;
X=0,24
(8)
=0,0101000
(2)
; [X]
1
=00101000;
Y= – 0,65
(8)
= – 0,1101010
(2)
; [Y]
1
=11101010;
Р1=[|X|]
1
=00101000;
Р2=[|Y|]
1
=01101010.
В этой таблице через ARC обозначается комбинация арифметиче-
ского и логического сдвигов. В этом случае выдвигаемый разряд за-
писывается во флаг CF. Если при сложении возникает переполнение,
то это учитывается при арифметическом сдвиге (значение CF запи-
сывается в знаковый бит, а значение знакового бита – в старший чис-
ловой разряд). После поразрядной конъюнкции Р2 с маской
11111110
(2)
в регистрах РСМ и Р2 содержится произведение: в РСМ
старшая часть, а в Р2 – младшая часть. Выполним проверку:
[X*Y]
1
=[1010000100100000]
1
= – 0,01000010010000
(2)
= – 0,20440
(8)
.
0,
6
5
x
0,
2
4
—
—
—
—
—
3
2
4
1
5
2
—
—
—
—
—
0,
2
0
4
4
Результат верен.
4.5.4. Алгоритм умножения двоичных дробных чисел
в формате с ФТ
Алгоритм умножения двоичных дробных чисел в формате с ФТ
имеет следующие отличия по отношению к раннее рассмотренным.
Нельзя избавиться от знакового бита множителя, после достижения
счетчиком тактов значения, равного 0, выполнив дополнительный
«n сдвиг» (произведение было бы уменьшено в два раза). Нужно об-
нулить младший бит регистра Р2, например, выполнив операцию по-
разрядной конъюнкции с маской, содержащей 1 во всех битах, кроме
младшего. Рассмотрим пример выполнения такого алгоритма.
Выполнить операцию умножения операндов X и Y на восьмираз-
рядном процессоре в прямом коде (табл. 4.5). Обратите внимание,
что при рассмотрении примера двойной рамкой выделяется значение
младшего бита Р2, который анализируется на шаге 4.
X=0,24(8), Y= – 0,65(8);
Z=X*Y;
X=0,24(8)=0,0101000(2); [X]1=00101000;
Y= – 0,65(8)= – 0,1101010(2); [Y]1=11101010;
Р1=[|X|]1=00101000;
Р2=[|Y|]1=01101010.
В этой таблице через ARC обозначается комбинация арифметиче-
ского и логического сдвигов. В этом случае выдвигаемый разряд за-
писывается во флаг CF. Если при сложении возникает переполнение,
то это учитывается при арифметическом сдвиге (значение CF запи-
сывается в знаковый бит, а значение знакового бита – в старший чис-
ловой разряд). После поразрядной конъюнкции Р2 с маской
11111110(2) в регистрах РСМ и Р2 содержится произведение: в РСМ
старшая часть, а в Р2 – младшая часть. Выполним проверку:
[X*Y]1=[1010000100100000]1= – 0,01000010010000(2)= – 0,20440(8).
0, 6 5
x 0, 2 4
— — — — —
3 2 4
1 5 2
— — — — —
0, 2 0 4 4
Результат верен.
70
Страницы
- « первая
- ‹ предыдущая
- …
- 69
- 70
- 71
- 72
- 73
- …
- следующая ›
- последняя »
