Which of the following addressing modes permits relocation without any change whatsoever in the code?
(A) Indirect addressing
(B) Indexed addressing
(C) Base register addressing
(D) PC relative addressing
Explanation: Code relocation can be done whenever addresses are not directly specified in the program (absolute), but are relative to some variable or other modifiable source.
For (C), base addressing, a register points to the base of the structure and the effective address is obtained by computing an offset from the base. The base address register can be loaded at run time to point to the base of the structure so the code doesn’t have to be modified. In this addressing, we may have to change the address in the base register.
For (D), PC relative, the effective memory address is obtained by computing an offset from the current PC. No matter where the code is loaded in memory, the offsets are always the same so the code needs no modification. In this addressing, there is absolutely no change in code needed.
So, option (D) is correct.
Quiz of this Question