- Asked 5/22
- 2076 Chaitra · 6 marks
- 2076 Asoj · 6 marks
- 2075 Asoj · 6 marks
- 2071 Shrawan · 4 marks
- 2068 Baisakh (old course) · 8 marks
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.
| Basis | Restoring division | Non-restoring division |
|---|---|---|
| After A - M gives a negative result | Restore: A = A + M, then Q0 = 0 | Do not restore; Q0 = 0 and next step adds M |
| Operation per step | Shift, subtract, (restore if needed) | Shift, then subtract or add depending on sign of A |
| Steps per bit | 1 or 2 (subtract, and add if negative) | Exactly 1 add/subtract |
| Speed | Slower (extra restoring addition) | Faster (fewer operations) |
| Hardware / control | Simple, but needs restore path | Slightly more complex sign test, no restore step |
| Final remainder | Always correct in A | If A is negative at the end, add M once to correct |
| Quotient bit | 1 if A - M ≥ 0 | 1 if A (after op) ≥ 0, else 0 |
| Number of additions | More | Fewer |
Example: 11 ÷ 3 (n = 4, M = 0011)
Restoring:
| Step | A (after shift) | Q | A - M | Action | A | Q (after) |
|---|---|---|---|---|---|---|
| init | 00000 | 1011 | ||||
| 1 | 00001 | 0110 | -00010 (neg) | negative: Q0=0, restore A | 00001 | 0110 |
| 2 | 00010 | 1100 | -00001 (neg) | negative: Q0=0, restore A | 00010 | 1100 |
| 3 | 00101 | 1000 | 00010 | positive: Q0=1 | 00010 | 1001 |
| 4 | 00101 | 0010 | 00010 | positive: Q0=1 | 00010 | 0011 |
Quotient = 0011 = 3, remainder = 2.
Non-restoring (negative values shown with a minus sign for clarity):
| Step | Shift AQ left: A | Q | Operation | A (new) | Q0 set | Q |
|---|---|---|---|---|---|---|
| init | 00000 | 1011 | ||||
| 1 | 00001 | 0110 | A = A - M | -00010 | 0 | 0110 |
| 2 | -00100 | 1100 | A = A + M | -00001 | 0 | 1100 |
| 3 | -00001 | 1000 | A = A + M | 00010 | 1 | 1001 |
| 4 | 00101 | 0010 | A = A - M | 00010 | 1 | 0011 |
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)
Related questions
- Non-restoring division with flowchart · Computer Organization and Architecture, chapter 5 · asked 3×
- Signed division and non-restoring division · Computer Organization and Architecture, chapter 5
- Non-restoring division of 10 by 5 · Computer Organization and Architecture, chapter 5
- Restoring division algorithm and hardware · Computer Organization and Architecture, chapter 5 · asked 2×
- Restoring division flowchart · Computer Organization and Architecture, chapter 5
- Restoring division of 31 by 13 · Computer Organization and Architecture, chapter 5
- Unique vs non-unique address decoding · Instrumentation II, chapter 2
- Maskable vs non-maskable interrupts · Microprocessor, chapter 5 · asked 2×
- Pressurized vs non-pressurized intakes · Hydropower Engineering, chapter 5 · asked 2×
- Functional vs non-functional; include and extend · Object Oriented Analysis and Design, chapter 2
All Computer Organization and Architecture chapter 5 questions →