1、基本原理
如下图所示,设A、B为被乘数得高、低16位二进制数,C、D为乘数的高、低二进制数,则有:N1×N2=(A×2**16+B)×(C×2**16+D)=BD+AD×2**16+BC×2**16+AC×2**32
通过分析可知,其需要四次乘法运算,每次进行两个16位二进制数乘法,得到四个部分积,然后再求部分累加和。如下图所示:
64位积在内存中存放格式如下:
2、流程图
3、代码实现
test.asm
如下图所示,设A、B为被乘数得高、低16位二进制数,C、D为乘数的高、低二进制数,则有:N1×N2=(A×2**16+B)×(C×2**16+D)=BD+AD×2**16+BC×2**16+AC×2**32
通过分析可知,其需要四次乘法运算,每次进行两个16位二进制数乘法,得到四个部分积,然后再求部分累加和。如下图所示:
64位积在内存中存放格式如下:
test.asm