I am wondering how to implement IEEE-754 32-bit single precision floating point division in binary with no division hardware and no floating point hardware?
I have shifting hardware, add, subtract, and multiply.
I have already implemented floating point multiplication, addition, and subtraction using 16-bit words.
I am implementing these instructions on a proprietary multicore processor and writing my code in assembly. Beforehand, I am using matlab to verify my algorithm.
I know I need to subtract the exponents, but how do i perform unsigned division on the mantissas?
Depends on how complicated you want to make it. Keeping it reasonably simple, you could try division by reciprocal approximation.
Rather than calculating: (n / d) you’d work out: n * (1 / d).
To do this you’d need to work out the reciprocal using some method, for example, Newton-Raphson which uses Newton’s method to calculate successively more accurate estimates of the reciprocal of the divisor until it’s “adequately” accurate for your purpose before doing the final multiplication step.
EDIT
Just seen your update. This may, or may not, be useful for you after all!