风中落叶

顾毅的博客

编程人生

51单片机小实验——双字节二进制乘法

| 这篇文章还没有评论

双字节二进制乘法,被乘数的首地址由30h给出,乘数的首地址由31h给出,结果的存储单元,结果的存储单元首地址由32h给出。


chengshu data 30h

beicheng data 31h

jieguo  data 32h

         org 0000h

         ljmp start

         org 0100h

start: clr c

         mov r0,chengshu

         mov a,@r0

         mov b,a

         mov r1,beicheng

         mov a,@r1

         mul ab

         mov r0,jieguo

         mov @r0,a

         inc r0

         mov @r0,b;第一次部分和,即被乘数低位乘以乘数低位

         mov r0,chengshu

         mov a,@r0

         mov b,a

         mov r1,beicheng

         inc r1

         mov a,@r1

         mul ab

         mov r0,jieguo

         inc r0

         addc a,@r0

         mov @r0,a

         inc r0

         mov @r0,b;第二部分和,被乘数高位乘以乘数低位

         mov r0,chengshu

         inc r0

         mov a,@r0

         mov b,a

         mov r1,beicheng

         mov a,@r1

         mul ab

         mov r0,jieguo

         inc r0

         addc a,@r0

         mov @r0,a

         inc r0

         mov a,b

         addc a,@r0

         mov @r0,a;第三部分,被乘数低位乘以乘数高位

         mov r0,chengshu

         inc r0

         mov a,@r0

         mov b,a

         mov r1,beicheng

         inc r1

         mov a,@r1

         mul ab

         mov r0,jieguo

         inc r0

         inc r0

         addc a,@r0

         mov @r0,a

         inc r0

         mov @r0,b;第四部分,高位乘以高位

         sjmp $

         end

» 订阅本站:http://www.xiamengy.net/
» 除非注明,本站文章均属原创。转载请注明来源:风中落叶——顾毅的博客 » 51单片机小实验——双字节二进制乘法

发表评论

Required fields are marked *.