Addressing modes determine how the CPU calculates the effective address of an operand. Let's analyze each statement:
1. Immediate Addressing (Option 1):
In this mode, the operand is part of the instruction itself (e.g., ADD #5). Since the value is fetched along with the instruction, no separate memory access is needed for the data, which reduces total access time. This is correct.
2. Index Addressing (Option 2):
Effective address = Index Register + Base Address. This is the standard method for accessing arrays, where the base address is the start of the array and the index register represents the offset. This is correct.
3. Register Indirect Addressing (Option 3):
The instruction specifies a register that contains the actual memory address. This is essentially how pointers work in high-level languages like C. This is correct.
4. Relative Addressing (Option 4):
Effective address = Program Counter (PC) + Displacement. This mode is specifically designed and widely used for branch (jump) instructions because it allows the code to be "position-independent." Therefore, the claim that it cannot be used for branch instructions is incorrect.