原码一位乘法
计算 A[1.n] $\times$ B[1.n]
构成
| 部件 | 构成 | 初始值 |
|---|---|---|
| ACC 部分积 | ACC[n] |
0 |
| MQ 乘数 | MQ[n] |
B[1:n+1] |
| S 符号位 | S[1] |
运行
-
符号位 S 单独运算 $$S= S_{A} \oplus S_{B} $$
-
部分积 ACC
+=MQ 最低位 $\times$ 乘数 $A$ -
拼接
[ACC:MQ]逻辑右移,后重复 2. -
经过
n次循环结束,S.[ACC:MQ]即为所求
补码一位乘法
计算 A[1.n] $\times$ B[1.n]
构成
| 部件 | 构成 | 初始值 |
|---|---|---|
| ACC 部分积 | ACC[2.n] |
0 |
| MQ 乘数 | MQ[1.n] |
$[B]_{补}$ |
| $MQ_{-1}$ 辅助位 | [1] |
0 |
运行
- 先求 $[A]{补}$ $[-A]{补}$ $[B]_{补}$
ACC+=$[(MQ_{-1}-MQ_{0}) \times A]_{补}$- 拼接
[ACC:MQ:MQ_{-1}]算术右移,goto2. - 进行
n + 1次循环后结束,最后一次不右移 [ACC:MQ[0:n]](MQ舍去最低位) 的原码即为所求
算术右移
若符号位为 1. 则高位补 1
若符号位为 0. 则高位补 0