Practice question · Multiple choice
The program counter is incremented during the FETCH phase, before the instruction has even been decoded. Why increment it so early rather than after the instruction completes?
Hints
- Once the instruction has been fetched, is the old PC value still needed?
- How does a jump instruction change what runs next?
Show the answer
A. Because the address has already been used, so the PC is free for the next one.
Why
Once the fetch has used the address, advancing the PC immediately leaves the machine pointing at the default next instruction. That default is what makes branching clean, a jump is one register assignment, not special sequencing logic. It also means the PC already holds the next address during execution, which is where relative branch offsets are measured from.
Practise The Instruction Execution Cycle
The app has 8 more questions on this lesson, and keeps your place in the course. Computer Science I is free to start.
More questions on The Instruction Execution Cycle
- A program executes ADD R1, R2 followed by JMP 200. Order what the CPU does, from the start of the first…
- A jump instruction sits at address 40 and jumps to address 80. Instructions are 4 bytes long. Order what…
- A buffer overflow that overwrites a return address can make a program execute the attacker's code. Which…