Binary division restoring algorithm PIC 18F family

Status
Not open for further replies.

atferrari

Well-Known Member
Most Helpful Member
Four days ago I finished the testing of a binary division algorithm 3216 unsigned based on the "restoring" method.

It may be found here: **broken link removed** where you will look for "PICs" scrolling down to below MUL_1616U

My comments:

a) Something that nobody tells you about the actual implementation of this method:

the shifting to the left of the dividend can cause an overflow detectable ONLY, through testing the Carry bit. (If set, the divisor must be substracted from the dividend as indicated by the method). Otherwise, the standard test "is divisor equal or less than dividend?" will fail, leading you to a final wrong result.

Just by working backwards from few known results, I realized that a failure appeared when, at least, one overflow occurred due the dividend shifting along the process.

b) The other routines are simple ones, that I use quite often. I know their limits and they fit my current needs. Please neglect them.

The other binary division routine based on the "Kenyan" algorithm (see a posting of myself from few days ago) completes the lot.
 
Shorter version just posted

Division 32/16 bits unsigned. I've just posted a slightly shorter version of the code.

Now it takes 22 lines including RETURN

Enter here: **broken link removed** look for "PICs". Scroll down, below MUL_1616U.
 
Have you tried checking the PICList?, there was a LOT of PICList action years ago on maths routines.
 
Writing my own routines

Basically, most of it, is for families previous to the 18F. And in most of the cases are poorly commented.

Mine is quite compact and just in 20 minutes I extended it for 48/24 unsigned.

Yesterday I revisited (binary to BCD) conversion routines and ported one of them to the 18F instruction set. Later I extended it in very short time.

Will post them shortly in my site.

Thanks for asking
 
Status
Not open for further replies.
Cookies are required to use this site. You must accept them to continue using the site. Learn more…