Final answer:
During program execution, the instruction register is incremented by one word after each fetch, but can be altered by branch or call instructions. Two alternatives to maintain instruction addresses are described: option a uses dynamic address translation with relative addresses, and option b uses dynamic address translation with absolute addresses.
Step-by-step explanation:
The subject of this question is Computers and Technology.
During the course of execution of a program, the processor increments the contents of the instruction register (program counter) by one word after each instruction fetch. However, if the processor encounters a branch or call instruction that causes execution to continue elsewhere in the program, it alters the contents of the instruction register. There are two alternatives for maintaining instruction addresses:
Option a: Maintain a relative address in the instruction register and use dynamic address translation. When a successful branch or call is encountered, the relative address generated by that branch or call is loaded into the instruction register.
Option b: Maintain an absolute address in the instruction register. When a successful branch or call is encountered, dynamic address translation is used, and the results are stored in the instruction register.