双字乘双字结果保存到寄存器的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,8888mov bx,6666imul bx ;视为带符号数,结果在dx,ax中。
数字大于字(word),在16位汇编下面就按我前面写的那样做。 1 2 3 4 5 6 7 81111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 ------------------------------------------ (8888×6666) ++------------------------------------------ (8888×5555+6666×7777) ++------------------------------------------- (7777×5555)
楼上的能提供电子版的书吗?