Skip to main content

Restoring vs non-restoring division

Short answer

Restoring division adds back the divisor if subtraction yields negative remainder. Non-restoring division does not restore; it adds or subtracts in the next step based on the remainder sign. Non-restoring is faster with one operation per bit, and corrects remainder if final A is negative.

Differentiate between restoring and non-restoring division.

Both methods divide a dividend Q (in the A:Q registers) by a divisor M, giving a quotient in Q and a remainder in A. In restoring division, a failed subtraction is undone by adding M back; in non-restoring division the correction is delayed to the next step.

BasisRestoring divisionNon-restoring division
After A - M gives a negative resultRestore: A = A + M, then Q0 = 0Do not restore; Q0 = 0 and next step adds M
Operation per stepShift, subtract, (restore if needed)Shift, then subtract or add depending on sign of A
Steps per bit1 or 2 (subtract, and add if negative)Exactly 1 add/subtract
SpeedSlower (extra restoring addition)Faster (fewer operations)
Hardware / controlSimple, but needs restore pathSlightly more complex sign test, no restore step
Final remainderAlways correct in AIf A is negative at the end, add M once to correct
Quotient bit1 if A - M ≥ 01 if A (after op) ≥ 0, else 0
Number of additionsMoreFewer

Example: 11 ÷ 3 (n = 4, M = 0011)

Restoring:

StepA (after shift)QA - MActionAQ (after)
init000001011
1000010110-00010 (neg)negative: Q0=0, restore A000010110
2000101100-00001 (neg)negative: Q0=0, restore A000101100
300101100000010positive: Q0=1000101001
400101001000010positive: Q0=1000100011

Quotient = 0011 = 3, remainder = 2.

Non-restoring (negative values shown with a minus sign for clarity):

StepShift AQ left: AQOperationA (new)Q0 setQ
init000001011
1000010110A = A - M-0001000110
2-001001100A = A + M-0000101100
3-000011000A = A + M0001011001
4001010010A = A - M0001010011

Quotient = 0011 = 3, remainder = 2. The final A is positive, so no correction is needed.

Both give 11 = 3 × 3 + 2. The non-restoring method used no restore steps.

✓ Answer checked by Claude Opus 5.5 (high effort)

All Computer Organization and Architecture chapter 5 questions →