It was giving a different output every time because the quotient was not cleared before the routine was called. So I added the following code. =09 BANK0 CLRF REMAINDERHI ;CLEAR THE REMAINDER. CLRF REMAINDERLO ; CLRF QUOTIENTLO=20 CLRF QUOTIENTHI=20 MOVLW 0x10 ;WE'RE DIVIDING BY A 16-BIT DIVISOR. MOVWF COUNT ; ;*** See Previous Posts for rest of Code =09 And now I only get one output for each set of inputs. But they are still incorrect. If I divide 0x0014/0x0004 =3D 0x0050, 0x0010/0x0002 =3D 0x8000, = 0x10/0x04 =3D 0x0800. Any ideas what is going on? Chuck -- http://www.piclist.com#nomail Going offline? Don't AutoReply us! email listserv@mitvma.mit.edu with SET PICList DIGEST in the body