Full Version : 32 by 32 to 64 Bit Multiply (AVR ASM)
avr >>MATH ROUTINES >>32 by 32 to 64 Bit Multiply (AVR ASM)


AVR_Admin- 04-18-2006
CODE

;***************************************************
;* Mutiply 32x32 -> 64 bit
;*
;*  R24:R21 x R5:R2 -> R15:R8
;*
;*  88 cycles + 4 (RET) = 92 Cycles
;*
mult32:
 clr R16
 mul R21,R2
 movw R8,R0
 clr R10
 clr R11
 clr R12
 clr R13
 clr R14
 clr R15
 mul R22,R2
 add R9,R0
 adc R10,R1
 mul R23,R2
 add R10,R0
 adc R11,R1
 mul R24,R2
 add R11,R0
 adc R12,R1

 mul R21,R3
 add R9,R0
 adc R10,R1
 adc R11,R16
 adc R12,R16
 adc R13,R16
 mul R22,R3
 add R10,R0
 adc R11,R1
 adc R12,R16
 adc R13,R16
 mul R23,R3
 add R11,R0
 adc R12,R1
 adc R13,R16
 mul R24,R3
 add R12,R0
 adc R13,R1

 mul R21,R4
 add R10,R0
 adc R11,R1
 adc R12,R16
 adc R13,R16
 adc R14,R16
 mul R22,R4
 add R11,R0
 adc R12,R1
 adc R13,R16
 adc R14,R16
 mul R23,R4
 add R12,R0
 adc R13,R1
 adc R14,R16
 mul R24,R4
 add R13,R0
 adc R14,R1

 mul R21,R5
 add R11,R0
 adc R12,R1
 adc R13,R16
 adc R14,R16
 adc R15,R16
 mul R22,R5
 add R12,R0
 adc R13,R1
 adc R14,R16
 adc R15,R16
 mul R23,R5
 add R13,R0
 adc R14,R1
 adc R15,R16
 mul R24,R5
 add R14,R0
 adc R15,R1
 ret



Forumer™ is Voted #1 Free Forum Hosting provider
Build your own community today with the largest message board hosting company.