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

DOWNLOAD     MAIN
;  Call:  var1[1:0] = dividend (0x0000..0xffff)
;         var2[1:0] = divisor (0x0001..0x7fff)
;         mod[1:0]  = don't care
;         lc        = don't care (high register must be allocated)
;
;  Result:var1[1:0] = var1[1:0] / var2[1:0]
;         var2[1:0] = not changed
;         mod[1:0]  = var1[1:0] % var2[1:0]
;         lc        = 0
;
; Size  = 16 words
; Clock = 179..211 cycles (+ret)
; Stack = 0 byte


div16u:		
		clr	mod0
		clr	mod1
		ldi	lc,16	
		lsl	var10
		rol	var11
		rol	mod0
		rol	mod1
		cp	mod0,var20
		cpc	mod1,var21
		brcs	PC+4
		inc	var10
		sub	mod0,var20
		sbc	mod1,var21
		dec	lc
		brne	PC-11
		ret
		  

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