Can anyone explain the process of multipoint multiplication in assembly?
Refer to the picture below and this link .
With regard to diagram 2.3, I understand why M (multiplier) and N (multiplier) are in the orders listed in "Partial product..M..L" in the rightmost column. This comes from the way we are usually taught to reproduce:
I understand why a digit is 64 bits long, because it is 32 bits times 32 bits.
I understand that the addresses go from P ~ P + 7 this way because the HO bit of the final product starts with P and the LO bit of the final product ends with P + 7.
I understand why each big rectangle splits into top and bottom half, because HCS12 can handle a maximum of 16 bits at a time, 16 bits at a time.
My problem: The way each small rectangle (bottom and top halves) is arranged confuses me. Apparently it should emulate a simplified multiplication process that I can understand how it's done. I just don't quite understand how this translates into numbers. The link from my first line also shows a similar process. I don't want to guess or guess what I think is going on. Can someone please explain in detail (preferably steps) how you figure out which small rectangle goes into which column and row; or, in other words, can you tell me how the multiplication process translates into a number?
source to share
The equation you have
(M H <16 + M L) x (N H <16 + N L)
, which means "left shift". Note that a left shift by 16 is equivalent to multiplying by 65536, and two shifts by 16 are equivalent to one by 32.
If you multiply this, you get
M L x N L+
M H <16 x N L+
M L x N H<16 +
M H <16 x N H <16
If you pull out the shifts:
(M L x N L) <<0 +
(M H x N L) <16 +
(M L x N H) <<16 +
(M H x N H) <32
The shift values now show the number of bits, each block is shifted from the left in the graph.
source to share