定点乘法

原码一位乘法

计算 A[1.n] $\times$ B[1.n]

构成

部件 构成 初始值
ACC 部分积 ACC[n] 0
MQ 乘数 MQ[n] B[1:n+1]
S 符号位 S[1]

运行

  1. 符号位 S 单独运算 $$S= S_{A} \oplus S_{B} $$

  2. 部分积 ACC += MQ 最低位 $\times$ 乘数 $A$

  3. 拼接 [ACC:MQ] 逻辑右移,后重复 2.

  4. 经过 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

运行

  1. 先求 $[A]{补}$ $[-A]{补}$ $[B]_{补}$
  2. ACC += $[(MQ_{-1}-MQ_{0}) \times A]_{补}$
  3. 拼接 [ACC:MQ:MQ_{-1}] 算术右移,goto 2.
  4. 进行 n + 1 次循环后结束,最后一次不右移
  5. [ACC:MQ[0:n]] (MQ 舍去最低位) 的原码即为所求
算术右移

若符号位为 1. 则高位补 1 若符号位为 0. 则高位补 0