Основы арифметики цифровых процессоров. Вашкевич Н.П - 68 стр.

UptoLike

67
СЧТ становится равным 0, из РСМ вычитается множимое (прибавля-
ется множимое со знаком «минус») и только после этого выполняет-
ся «n сдвиг».
Необходимость коррекции объясняется следующим. Дополни-
тельный код отрицательного числа Y получается как:
[Y]
2
=2
n
+ Y, где n – разрядность процессора.
Откуда Y=[Y]
2
– 2
n
.
Тогда
[X]
2
*[Y]
2
=[X]
2
*([Y]
2
–2
n
)=[X]
2
*[Y]
2
–([X]
2
*2
n
)=[X]
2
*[Y]
2
+(–[X]
2
*2
n
),
где второе слагаемое – ([X]
2
*2
n
) – это и есть коррекция в РСМ.
Пример
. Выполнить умножение операндов X и Y на восьмираз-
рядном процессоре. X= – 160
(8)
, Y=67
(8)
(табл. 4.4). Обратите внима-
ние, что при рассмотрении примера двойной рамкой выделяется зна-
чение младшего бита Р2, который анализируется на шаге 4.
X= – 160
(8)
= – 1110000
(2)
; [X]
2
=10010000;
Y=67
(8)
=110111
(2)
; [Y]
2
=110111;
Р1=10010000;
Р2=00110111.
В табл. 4.4 через ARC обозначается комбинация арифметического и
логического сдвигов. В этом случае выдвигаемый разряд записывается
во флаг CF. Если при сложении возникает переполнение, то это учиты-
вается при арифметическом сдвиге (значение CF записывается в знако-
вый бит, а значение знакового битав старший числовой разряд).
После «n сдвига» в регистрах РСМ и Р2 содержится произведение:
в РСМстаршая часть, а в Р2 – младшая часть. Выполним проверку:
[X*Y]
2
=[1110011111110000]
2
= – 001100000010000
(2)
= – 14020
(8)
.
1
6
0
x
6
7
1
4
2
0
1
2
4
0
1
4
0
2
0
Результат верен.
СЧТ становится равным 0, из РСМ вычитается множимое (прибавля-
ется множимое со знаком «минус») и только после этого выполняет-
ся «n сдвиг».
   Необходимость коррекции объясняется следующим. Дополни-
тельный код отрицательного числа Y получается как:
   [Y]2=2n + Y, где n – разрядность процессора.
   Откуда Y=[Y]2 – 2n.
   Тогда
[X]2*[Y]2 =[X]2*([Y]2 –2n)=[X]2*[Y]2–([X]2*2n)=[X]2*[Y]2 +(–[X]2*2n),
где второе слагаемое – ([X]2*2n) – это и есть коррекция в РСМ.
   Пример. Выполнить умножение операндов X и Y на восьмираз-
рядном процессоре. X= – 160(8), Y=67(8) (табл. 4.4). Обратите внима-
ние, что при рассмотрении примера двойной рамкой выделяется зна-
чение младшего бита Р2, который анализируется на шаге 4.
   X= – 160(8)= – 1110000(2); [X]2=10010000;
   Y=67(8)=110111(2); [Y]2=110111;
   Р1=10010000;
   Р2=00110111.
   В табл. 4.4 через ARC обозначается комбинация арифметического и
логического сдвигов. В этом случае выдвигаемый разряд записывается
во флаг CF. Если при сложении возникает переполнение, то это учиты-
вается при арифметическом сдвиге (значение CF записывается в знако-
вый бит, а значение знакового бита – в старший числовой разряд).
После «n сдвига» в регистрах РСМ и Р2 содержится произведение:
в РСМ – старшая часть, а в Р2 – младшая часть. Выполним проверку:
   [X*Y]2=[1110011111110000]2= – 001100000010000(2)= – 14020(8).
                1 6 0
           x         6 7
      — — — — —
           1 4 2 0
       1 2 4 0
      — — — — —
       1 4 0 2 0
   Результат верен.

                                 67