有人能解释汇编中多精度乘法的过程吗?

时间:2012-03-08 07:23:09

标签: math assembly multiplication

请参阅下图和this link

Figure 2.3

关于图2.3,我理解为什么M(乘数)和N(被乘数)在最右列中的“Partial product..M..L”中列出的那些顺序中。它来自于我们通常被教导如何繁殖:

我理解为什么这个数字是64位长,因为它是32位乘32位。

我理解地址是从P~P + 7开始的,因为H.O.最终产品的一部分从P和L.O开始。最终产品的一部分以P + 7结束。

我理解为什么每个大矩形被分成上半部分和下半部分,因为HCS12一次只能处理最多16位乘以16位。

我的问题:每个小矩形(下半部和上半部)的排列方式令我困惑。显然,它应该模仿简化的乘法过程,我可以理解它是如何完成的。我完全不明白它是如何转化为数字的。我的第一行的链接也显示了一个类似的过程。我不想猜测或假设我认为发生了什么。有人可以详细解释(最好是步骤)你如何找出哪个小矩形进入哪个列和行;或者换句话说,你能告诉我乘法过程如何转化为数字吗?

1 个答案:

答案 0 :(得分:6)

你所拥有的等式是

(M H <&lt; 16 + M L )x(N H <&lt; 16 + N L

<<表示“向左移”。请注意,16左移相当于乘以65536,两次乘16相当于1乘32.

如果你将其乘以,你得到

M L x N L +
M H &lt; 16 x N L +
M L x N H <&lt; 16 +
M H &lt; 16 x N H <&lt; 16

如果你拉出轮班:

(M L x N L )&lt;&lt; 0 +
(M H x N L )&lt;&lt;&lt;&lt;&lt; 16 +
(M L x N H )&lt; 16 +
(M H x N H )&lt;&lt;&lt;&lt;&lt; 32

现在,移位量显示每个块在图形中向左移位的位数。