AVR 乘法子程序(16位乘16位)
作者:相逢萍水 日期:2007-10-12
说明:
1:此子程序的两个乘数分别放于XHXL和ZHZL,结果放在ZLYHYLXH(至于为什么这样放的理由是与我的16/24/32/40位除以16位的子程序有关)
2:子程序运算过程中所用过的寄存器有:R6,R7.因此,如果你的程序中别的地方有用到,请在进入子程序前保存好这些值,以防丢失.
程序代码MUL16:
MUL XL,ZL ;ZLYHYLXH=XHXL*ZHZL
MOVW YL,R0
MUL XH,ZL
MOVW R6,R0
ADD YH,R6
ADC R7,ZERO
CLR ZL
MUL XL,ZH
ADD YH,R0
ADC R7,R1
ADC ZL,ZERO
MUL XH,ZH
ADD R7,R0
ADC ZL,R1
MOV XH,YL
MOV YL,YH
MOV YH,R7
RET
评论: 0 | 引用: 0 | 查看次数: -
发表评论
上一篇
下一篇

文章来自:
Tags: