Multiplication and division both involve shifting together with addition or subtraction. They can be implemented with an ALU that can add or subtract and some modified shift-register circuitry.
The terms multiplicand, multiplier, and product are defined by their roles in the multiplication algorithm as shown below.
multiplicand multiplier ———————————— · · · ———————————— product
The terms divisor, dividend, quotient, and remainder are defined by their roles in the division algorithm as shown below.
quotient ————————— divisor/ dividend · · · ————————— remainder
Multiplication and division can both be done with the circuit shown above. To multiply two 32-bit numbers MD, Lo, and Hi are each 32-bit registers. Lo and Hi and the multiplexer work together as a modified 64-bit shift register. Both operations involve 32 shift steps with the ALU possible doing an add or subtract.
The control for the two operations differs in several ways:
When used for multiplication:
When used for division: