Home     Projects     Micro     Tools     Delphi     Developer     Site map
HOME  
 
 
       
24bit/24bit Unsigned Division

DOWNLOAD     MAIN
;  Call:  var1[2:0] = dividend (0x000000..0xffffff)
;         var2[2:0] = divisor (0x000001..0x7fffff)
;         mod[2:0]  = don't care
;         lc        = don't care (high register must be allocated)
;
;  Result:var1[2:0] = var1[2:0] / var2[2:0]
;         var2[2:0] = not changed
;         mod[2:0]  = var1[2:0] % var2[2:0]
;         lc        = 0
;
; Size  = 21 words
; Clock = 348..412 cycles (+ret)
; Stack = 0 bytes


div24u:		
		clr	mod0
		clr	mod1
		clr	mod2
		ldi	lc,24	
		lsl	var10
		rol	var11
		rol	var12
		rol	mod0
		rol	mod1
		rol	mod2
		cp	mod0,var20
		cpc	mod1,var21
		cpc	mod2,var22
		brcs	PC+5
		inc	var10
		sub	mod0,var20
		sbc	mod1,var21
		sbc	mod2,var22
		dec	lc
		brne	PC-15
		ret
		  

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