IV.3.3 Умножение по алгоритъма на Бут
Алгоритъмът
реализира
метода за
умножение с
младшите
разряди
напред по
схемата с неподвижно
множимо. За
определяне
на необходимите
микрооперации,
в текущият i-ти
такт,
алгоритъмът
на Бут
използува
две логически
функции:
• Функция
на
изместването
чиито
стойности са
кодирани
както следва:
c=0 -
означава
изместване
(без
операция) и
c=1 -
означава
операция с
последващо
изместване;
• Функция
на
операцията
чиито
стойности са
кодирани
както следва:
s=0 -
означава (+)
събиране и
s=1 -
означава (-) изваждане.
Алгоритъмът
на Бут се
отнася към
групата на
методите за
логическо
ускоряване
на операция
умножение.
Характеризира
се със това,
че е
хомогенен и
интерпретира
знаковата
цифра така
както всички
останали
цифри на
множителя.
Има продължителност
n
такта.
ПРИМЕР 54. Да се
изпълни
операция
умножение Z=X.Y
на числата X=21
и Y=28, които
са
представени
в разрядна
мрежа с
дължина n=6[b], в
допълнителен
код, по
алгоритъма на
Бут.
ПРИМЕР 55. Да се
изпълни
операция
умножение Z=X.Y
на числата X=21
и Y=-28, които
са
представени
в разрядна
мрежа с дължина n=6[b],
в
допълнителен
код, по
алгоритъма на
Бут.
ПРИМЕР 56. Да се
изпълни
операция
умножение Z=X.Y на
числата X=-21 и Y=-28, които са
представени
в разрядна мрежа
с дължина n=6[b], в
допълнителен
код, по
алгоритъма
на Бут.
ПРИМЕР 57. Да се
изпълни
операция
умножение Z=X.Y на
числата X=28 и
Y=-15,
които са
представени
в разрядна мрежа
с дължина n=6[b], в
допълнителен
код, по
алгоритъма
на Бут.
При
умножение по
алгоритъма
на Бут съществува
едно
единствено
изключение,
което ще илюстрираме
със
следващия
пример. Това
изключение
се създава от
най-малкото
число представимо
в разрядната
мрежа, когато
то се явява
множимо.
Тогава, в
случай, че
поредната операция
е изваждане,
е възможно да
настъпи препълване,
което води до
необходимост
от модифицирано
аритметическо
изместване надясно.
ПРИМЕР 58. Да се
изпълни
операция
умножение Z=X.Y
на числата X=-32 и
Y=-32,
които са
представени
в разрядна мрежа
с дължина n=6[b], в
допълнителен
код, по
алгоритъма на
Бут.
Следващият
раздел е: