Fetch: sending the address from the PC to the MAR

Tip: Choose Save as PDF in the print dialog to download. Use A4 paper size.

Fetch: sending the address from the PC to the MAR

Name:
Date:
Class:

Quick Questions

Shade in the A or B circle for each question.

1. What happens at the very start of the fetch stage?
A The instruction in the CIR is copied into the PC
B The address in the PC is copied into the MAR
2. Which register message shows the first step of fetch?
A PC <- MAR
B MAR <- PC
3. After MAR <- PC, what does the PC hold?
A It still holds the address, because it was copied
B It is empty, because the address was moved
4. Which bus carries the address from the MAR to RAM?
A Address bus
B Data bus
5. What does the PC hold at the start of fetch?
A The address of the next instruction to be fetched
B The instruction that is being executed

Match the Pairs

Draw a line connecting each item on the left to its match on the right.

Left columnRight column
1MAR <- PC AAt the start of fetch, the address in the PC is copied into the MAR
2MAR -> address bus -> RAM BMAR <- PC
3The first step of fetch copies the address of the next instruction from the PC into the MAR CThe PC is not emptied because the address is copied, not moved. The PC keeps its value at this point.
4After the copy, the PC still holds the same address because the value is copied, not moved DThe address in the MAR travels along the address bus to the location in RAM
5MDR <- PC EThe address from the PC must go to the MAR, not the MDR. The MDR holds data or instructions that come from RAM.
6MAR <- PC, then PC is emptied (PC = 0) FPC = 100, MAR = 100

Definitions

MAR <- PC

Fill in the Blanks

Complete each line of code by filling in the missing parts.

1.
MAR ← __
2.
___ ← PC
3.
MAR _ PC
4.
MAR ← PC // The address travels on the _______ bus
5.
PC = 250 MAR ← PC // PC still holds ___

Spot the Error

Shade in the letter of the line that contains an error.

Question 1
A PC <- 100
B MAR <- PC
C ADDRESS BUS <- MAR
D PC is now empty
Question 2
A PC <- MAR
B Address bus sends MAR to RAM
C PC keeps its address
Question 3
A Fetch begins: MDR <- PC
B MAR sends address on addr bus
C PC still holds the address
Question 4
A PC holds address 250
B MAR <- PC
C MAR holds 251
Question 5
A PC holds 40
B MAR <- PC + 1
C MAR holds 40
D Address bus carries 40

Answer Key

Fetch: sending the address from the PC to the MAR
Section A: Quick Questions
Q1
B — The address in the PC is copied into the MAR
Q2
B — MAR <- PC
Q3
A — It still holds the address, because it was copied
Q4
A — Address bus
Q5
A — The address of the next instruction to be fetched
Section B: Match the Pairs
Q1
MAR <- PC → At the start of fetch, the address in the PC is copied into the MAR
Q2
MAR -> address bus -> RAM → The address in the MAR travels along the address bus to the location in RAM
Q3
The first step of fetch copies the address of the next instruction from the PC into the MAR → MAR <- PC
Q4
After the copy, the PC still holds the same address because the value is copied, not moved → PC = 100, MAR = 100
Q5
MDR <- PC → The address from the PC must go to the MAR, not the MDR. The MDR holds data or instructions that come from RAM.
Q6
MAR <- PC, then PC is emptied (PC = 0) → The PC is not emptied because the address is copied, not moved. The PC keeps its value at this point.
Section C: Definitions
Q1
MAR <- PC — At the start of fetch, the address held in the PC is copied into the MAR. It then travels along the address bus to RAM. The PC still holds the address at this point, because it is copied, not moved.
Section D: Fill in the Blanks
Q1
MAR ← PC
Q2
MAR ← PC
Q3
MAR ← PC
Q4
MAR ← PC // The address travels on the address bus
Q5
PC = 250 MAR ← PC // PC still holds 250
Section E: Spot the Error
Q1
D — The address is copied from the PC to the MAR, not moved. The PC still holds 100 at this point. The line should be: PC still holds 100.
Q2
A — The transfer goes the wrong way. At the start of fetch the address is copied from the PC into the MAR, so it should be: MAR <- PC.
Q3
A — The PC address goes into the MAR, not the MDR. The MDR holds data or instructions coming from RAM. It should be: MAR <- PC.
Q4
C — The address is copied unchanged, so the MAR holds 250, the same as the PC. The PC is incremented later in the fetch stage, not during the copy.
Q5
B — The MAR receives an exact copy of the PC. Adding 1 is the separate increment step that comes after. It should be: MAR <- PC.