Continue to Site

Welcome to our site!

Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

  • Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

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.
 
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.

Latest threads

New Articles From Microcontroller Tips

Back
Top