>http://home.netcom.com/~fastfwd/answers.html#PIC00094 from Andrew >Warren: 16-bit by 8 - site unreachable Here is the info from Andrew's site: I saw the 8-bit divide routine in Question #64, but I can't figure out how to extend it to divide one 16-bit number by another. How do you do a 16-bit divide? Like this. The following routine is written for clarity, not absolute speed, but it should still perform relatively quickly: ; 16-Bit Divide. Written by Andy Warren. ; ; Copyright (C) 1996 Fast Forward Engineering. All rights reserved. ; Permission is hereby granted for any non-commercial use, ; so long as this copyright notice remains intact. ; ; Enter with Dividend in DIVIDENDHI:DIVIDENDLO, divisor in ; DIVISORHI:DIVISORLO. ; ; Exits with quotient in QUOTIENTHI:QUOTIENTLO, remainder in ; REMAINDERHI:REMAINDERLO. DIVIDE16: CLRF REMAINDERHI ;CLEAR THE REMAINDER. CLRF REMAINDERLO ; MOVLW 16 ;WE'RE DIVIDING BY A 16-BIT DIVISOR. MOVWF COUNT ; DIVLOOP: RLF DIVIDENDLO ;SHIFT DIVIDEND LEFT 1 BIT INTO RLF DIVIDENDHI ;REMAINDERHI:REMAINDERLO. RLF REMAINDERLO ; RLF REMAINDERHI ; MOVF DIVISORHI,W ;COMPARE THE DIVISOR TO THE PORTION OF THE SUBWF REMAINDERHI,W ;DIVIDEND THAT'S BEEN SHIFTED INTO REMHI. BNZ CHECKLESS ;IF THE TWO HI-BYTES AREN'T THE SAME, JUMP ;AHEAD. MOVF DIVISORLO,W ;OTHERWISE, WE HAVE TO COMPARE THE SUBWF REMAINDERLO,W ;LO-BYTES. CHECKLESS: BNC NOSUB ;IF THE SHIFTED PORTION OF THE DIVIDEND WAS ;LESS THAN THE DIVISOR, JUMP AHEAD. MOVF DIVISORLO,W ;OTHERWISE, REMAINDER = REMAINDER - DIVISOR. SUBWF REMAINDERLO ; MOVF DIVISORHI,W ; SKPC ; INCFSZ DIVISORHI ; SUBWF REMAINDERHI ; (CARRY'S ALWAYS SET AT THIS POINT.) NOSUB: RLF QUOTIENTLO ;IF WE JUST SUBTRACTED, SHIFT A "1" INTO RLF QUOTIENTHI ;THE QUOTIENT. OTHERWISE, SHIFT A "0". DECFSZ COUNT ;HAVE WE SHIFTED ENOUGH BITS? GOTO DIVLOOP ;IF NOT, LOOP BACK. ; AT THIS POINT, THE QUOTIENT IS IN QUOTIENTHI:LO AND THE REMAINDER IS ; IN REMAINDERHI:LO. -- http://www.piclist.com hint: The PICList is archived three different ways. See http://www.piclist.com/#archives for details.