向大家求助一道题:
如何实现多字节的乘法问题?
双字乘双字结果保存到寄存器的8个字节中(编号1,2,3,4,5,6,7,8)再大的数依此类推。。。
8888 7777×6666 5555
=(88880000+7777)×(66660000+5555)
=(8888×6666×100000000)+(8888×5555×10000)+(6666×7777×10000)+(7777×5555)
8888×6666保存到最前面的一个双字里面,即1,2,3,4字节,8888×5555+6666×7777加到3,4,5,6字节,7777×5555再加到5,6,7,8字节。 注意别忘了加法要进位。
8888*6666是两个字(word)相乘,
mov ax,8888
mov bx,6666
imul bx ;视为带符号数,结果在dx,ax中。
数字大于字(word),在16位汇编下面就按我前面写的那样做。
1 2 3 4 5 6 7 8
1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111
------------------------------------------
(8888×6666)
++------------------------------------------
(8888×5555+6666×7777)
++-------------------------------------------
(7777×5555)
楼上的能提供电子版的书吗?