
;32 bit / 24 bit division	
;16 bit quotient
	
DIV32:	CLR C
	
NSUB:	MOV R0, #DIVIDND
	MOV R1, #DIVSOR	
        MOV A,  @R0	; Subtract LSBs
	SUBB A, @R1
	MOV @R0,  A
			
	INC R0
	INC R1
	MOV A, @R0
	SUBB A, @R1
	MOV @R0, A
			
	INC R0
	INC R1
	MOV A, @R0
	SUBB A, @R1
	MOV @R0, A
			
	INC R0		; Subtract MSBs
	INC R1
	MOV A, @R0
	SUBB A, @R1
	MOV @R0, A
			
	JC NOINC	; If carry bit ON, finish div process.
						
	MOV R0, #QUOT	; no carry - increment LSB of quotient 
        MOV A, @R0
	ADD A, #01H
	MOV @R0, A
	JNC NXT		; If LSB quot. value = FFH, inc. MSB of quotient				
	INC QUOT+1		
	
NXT:	JMP NSUB        ; Next Subtraction...
NOINC:	RET 
