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

DOWNLOAD     MAIN
;  Call:  var1[3:0] = dividend (0x00000000..0xffffffff)
;         var2[3:0]  = divisor (0x00000001..0x7fffffff)
;         mod[3:0]  = don't care
;         lc            = don't care 
;                        (high register must be allocated)
;  Result:var1[3:0] = var1[3:0] / var2[3:0]
;         var2[3:0]   = not changed
;         mod[3:0]    = var1[3:0] % var2[3:0]
;                      lc = 0
; Size  = 26 words
; Clock = 549..677 cycles (+ret)
; Stack = 0 bytes


div32u:		
		clr	mod0
		clr	mod1
		clr	mod2
		clr	mod3
		ldi	lc,32
		lsl	var10
		rol	var11
		rol	var12
		rol	var13
		rol	mod0
		rol	mod1
		rol	mod2
		rol	mod3
		cp	mod0,var20
		cpc	mod1,var21
		cpc	mod2,var22
		cpc	mod3,var23
		brcs	PC+6
		inc	var10
		sub	mod0,var20
		sbc	mod1,var21
		sbc	mod2,var22
		sbc	mod3,var23
		dec	lc
		brne	PC-19
		ret
		  

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