什么是计算机体系结构中的 Booth 乘法算法?
布斯乘法算法定义了一种乘法算法,可以将两个有符号二进制数以二进制补码相乘。该算法有助于计算机体系结构的研究。
布斯算法包含将两个预定值(A 和 S)之一连续添加到乘积 (P) 上,然后对乘积 (P) 执行向右的算术移位。让我们考虑预先确定的值是 A 和 S,乘积是 P。考虑被乘数和乘数分别是 m 和 r。设 m 和 r 中的位数分别为 x 和 y。
Booth 的乘法算法涉及以下步骤 -
步骤 1 - 确定 A 和 S 的值以及 P 的初始值。这些值的长度应该等于 (x + y + 1)。
对于 A,MSB 用 m 的值填充,其余 (y+1) 位用零填充。
对于 S,MSB 以二进制补码表示法填充 (-m) 的值,其余 (y + 1) 位填充为零。
对于 P,x 的 MSB 用零填充。在该值的右侧,附加了 r 的值。然后,LSB 用零填充。
步骤 2 - 确定 P 的 LSB。
如果它们是 01,则找到 P+A 的值,并忽略溢出或进位(如果有)。
如果它们是 10,则找到 P + S 的值,并忽略溢出或进位(如果有)。
如果它们是 00,则在下一步中直接使用 P。
如果它们是 11,则在下一步中直接使用 P。
步骤 3 - 在第二步中获得的值在算术上向右移动一位。P 现在被赋予了新的值。
Step 4 - Step 2 和 Step 3 重复 y 次。第 5 步:从 P 中去掉 LSB,得到 m 和 r 的乘积。
示例- 找到 3 x (-4) 的乘积,其中 m = 3,r = -4,x = 4 和 y = -4。
A = 001100001
S = 110100000
P = 000011000
由于 y = 4,循环必须执行四次。
P = 000011000
这里,最后两位是 00。
因此,执行算术右移后 P = 000001100。
P = 000001100
这里,最后两位是 00。
因此,执行算术右移后 P = 000000110。
P = 000000110
这里,最后两位是 10。
因此,P = P + S,即 110100110。
执行算术右移后 P = 111010011。
P = 111010011
这里,最后两位是 11。
因此,执行算术右移后 P = 111101001。
从 P 去掉 LSB 后的乘积为 11110100。
11110100 是 -12 的二进制表示。
以上是 什么是计算机体系结构中的 Booth 乘法算法? 的全部内容, 来源链接: utcz.com/z/343854.html