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 possibly doing an add or subtract in each step.
The control for the two operations differs in several ways:
When used for multiplication:
When used for division: