Direction: Consider the following program segments. Here R1, R2 and R3 are purpose registers.
Instruction | Operation | Instruction size (number of words) |
MOV R1, 3000 | R1 ← M [3000] | 2 |
LOOP MOV R2 , R3 | R2 ← M [R3] | 1 |
ADD R2, | R2 ← R1 + R2 | 1 |
MOV R3 , R2 | M[R3] ← R2 | 1 |
INC R3 | R3 ← R3 + 1 | 1 |
DEC R1 | R1 ← R1 – 1 | 1 |
BNZ LOOP | Branch on not zero | 2 |
HALT | Stop | 1 |
Assume that the content of memory location 3000 is 10 and the content of the register R3 is 2000. The content of each of the memory locations from 2000 to 2010 is 100. The program is loaded from the memory location 1000. All the numbers are in decimal.
-
Assume that the memory is word addressable. After the execution of this program, the content of memory location 2010 is
-
- 10
- 11
- 20
- 21
- 10
Correct Option: D
The memory reference required by the instruction R1 ← M [3000] is 1 whereas the memory reference required by R2 ← M[R3] and M[R3] ← R2 is 10. Therefore, total memory reference required = 2 × 10 + 1