Multiplication and Division

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.

Multiplication Terminology

The terms multiplicand, multiplier, and product are defined by their roles in the multiplication algorithm as shown below.

multiplicand
  multiplier
————————————
      ·
      ·
      ·
————————————
     product

Division Terminology

The terms divisor, dividend, quotient, and remainder are defined by their roles in the division algorithm as shown below.

         quotient
        —————————
divisor/ dividend
            ·
            ·
            ·
        —————————
        remainder

Implementation

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:

Multiplication

When used for multiplication:

Division

When used for division: