Multiply 8 bits by 8 bits in software by http://elm-chan.org/
;-----------------------------------------------------------------------------: ; 8bit x 8bit unsigned multiply ; ; Register variables: ; Call: var10 = 8bit multiplicand ; var11 = <don't care> ; var20 = 8bit multiplier ; lc = <don't care> (high register must be allocated) ; ; Result:var1[1:0] = 16bit result of var10 * var20 ; var20 = <not changed> ; lc = 0 ; ; Size = 9 words ; Clock = 64 cycles (+ret) ; Stack = 0 byte mul08u: sub var11,var11 ;initialize variables ldi lc,9 ; lc = 9; brcc PC+2 ;---- calcurating loop add var11,var20 ; ror var11 ; ror var10 ; dec lc ;if (--lc > 0) brne PC-5 ; continue loop; ret