Home     Projects     Micro     Tools     Delphi     Developer     Site map
HOME  
 
 
       
8 bit multiplicand

DOWNLOAD     MAIN
;  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
		ldi	lc,9
		brcc	PC+2
		add	var11,var20	;
		ror	var11
		ror	var10
		dec	lc	
		brne	PC-5
		ret



mul08s:		
		clr	lc	
		tst	var10
		brpl	PC+3
		inc	lc
		neg	var10
		tst	var20
		brpl	PC+3
		inc	lc
		neg	var20
		bst	lc,0
		rcall	mul08u
		brtc	PC+5
		com	var10
		com	var11
		adc	var10,lc
		adc	var11,lc
		ret		      
		  

Copyright(c) 2005-2008 sixca.com, All right reserved.
Best view @ 800X600, IE 6.0 up   
Terms of Use  Privacy Policy