引用下图和this link .
关于图 2.3,我理解为什么 M(乘数)和 N(被乘数)出现在最右列“部分积..M..L”中列出的那些顺序中。它来 self 们通常被教导乘法的方式:
我明白为什么这个数字是 64 位长,因为它是 32 位乘以 32 位。
我知道地址是从 P~P+7 开始的,因为 H.O.最终产品的一部分从 P 和 L.O 开始。最终产品的一部分以 P+7 结束。
我明白为什么每个大矩形都分成上半部分和下半部分,因为 HCS12 一次最多只能处理 16 位乘以 16 位。
我的问题:每个小矩形(下半部分和上半部分)的排列方式让我感到困惑。显然,它应该模仿简化的乘法过程,我可以理解它是如何完成的。我只是不完全理解它是如何转化为数字的。我第一行的链接也显示了类似的过程。我不想猜测或假设我认为正在发生的事情。有人能详细解释一下(最好是步骤)你是如何弄清楚哪个小矩形进入哪一列和哪一行的吗?或者换句话说,你能告诉我乘法过程是如何转化为数字的吗?
最佳答案
你的等式是
( MH<<16 + ML ) x ( NH<<16 + NL> )
与 <<
意思是“左移”。请注意,左移 16 位相当于乘以 65536,两次 16 位相当于一次乘以 32。
如果你把它相乘,你会得到
ML x NL +
MH<<16 x NL +
ML x NH<<16 +
MH<<16 x NH<<16
如果你取消类次:
(ML x NL) << 0 +
(MH x NL) << 16 +
(ML x NH) << 16 +
(MH x NH) << 32
现在移位量显示每个 block 在图形中向左移动的位数。
关于math - 有人可以解释一下汇编中多精度乘法的过程吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9614158/