← IGCSE Computer Science Paper 1

Memory address register (MAR)

Memory Address Register: a CPU register that holds the address of the memory location about to be read from or written to. It holds an address, not data, and sends it along the address bus.

Understanding Memory address register (MAR) in IGCSE Computer Science Paper 1

What it does: The MAR puts its address on the address bus, which carries it one way to the memory location the CPU wants to access. The MAR stores a location in memory. The data or instruction found at that location is held in the MDR instead. The MAR holds an address, not data. Fetched data and instructions go into the MDR. MAR stands for Memory Address Register. It is a register that holds a memory address. At the start of the fetch stage the PC's address is copied to the MAR. The MAR then holds the address of the instruction to fetch.

Common mistakes: The MAR receives the address of the next instruction from the PC. The MDR holds data, so it should not be copied into the MAR. It should be MAR ← PC. During fetch the MAR gets its address from the PC. The CIR holds the current instruction, not an address to fetch from. It should be MAR ← PC.

Class: _____________________  ·  Name: _____________________  ·  Date: _________

Free printable worksheet with full answer key — or add this module to a class and your students practise it interactively.

This module's key terms are also in a printable crossword (Modules 218–227) and word search (Modules 218–239).

Take this worksheet further — free with Cloodit

Each concept is reinforced from every angle — learned, then applied, then tested.

Learning
Duo
What does the MAR hold?
The address of the memory location about to be read from or written toThe data or instruction that has just been fetched from memory
Matches
The MAR holds the instruction fetched from RAM
↓
The MAR holds an address, not an instruction. The fetched instruction or data is held in the MDR.
Applying
Meanings
Term
MAR
Meaning
Memory Address Register: a CPU register that holds the address of the memory location about to be read from or written to. It holds an address, not data, and sends it along the address bus.
Practice
MAR <- [PC]
Testing
Gaps
MAR ←
Check Answer
Spots
1MAR ← MDR
2SEND MAR ON ADDRESS BUS

Cloodit turns curriculum-aligned coding content into journeys students work through one biome at a time.

The 'Tree Frog' badge — Leap of Logic, one of Cloodit's 106 collectible badges
Students earn collectable badges

Over 100 of them, across seven natural biomes.

Study Buddy
Students build a real study resource

Turns their work into revision material ready for Flash Cards and Exam study.

Diamond Dash — one of Cloodit's live, competitive Sprint games
Students lock in with Sprints

Live, competitive practice for the start of the lesson or a teacher-led lesson finisher.

A Cloodit certificate of achievement, ready to personalise and print
Custom printable certificates

Honour your top performers, or encourage a student who's trying hard — ready to print in seconds.

Quick Questions

1. What does the MAR hold?
A. The address of the memory location about to be read from or written to ✓
B. The data or instruction that has just been fetched from memory
The MAR holds an address, not data. Fetched data and instructions go into the MDR.
2. During the fetch stage, where does the MAR get its address from?
A. The arithmetic logic unit (ALU)
B. The program counter (PC) ✓
The PC holds the address of the next instruction, and this address is copied into the MAR.
3. Which bus carries the address from the MAR to the RAM?
A. Address bus ✓
B. Data bus
The address bus carries addresses. The data bus carries data and instructions.
4. True or false: the MAR stores the instruction that is being executed.
A. False: the MAR stores an address, not an instruction ✓
B. True: the MAR stores the current instruction
The instruction being executed is held in the CIR. The MAR only holds a memory address.
5. The MAR contains the value 0100. What does 0100 represent?
A. The data that will be stored in the accumulator
B. The location in RAM that will be accessed ✓
The value in the MAR is an address, so it tells the CPU which location in memory to access.

Match the Pairs

MAR → The Memory Address Register, which holds the address of the memory location about to be read from or written to
MAR ← PC → The address in the program counter is copied into the MAR so the CPU knows which memory location to read next
The MAR sends the address it holds along the address bus to RAM → MAR → address bus → RAM
The MAR holds an address, not data, so it stores a memory location such as 0042 → MAR = 0042 (address)
The MAR holds the instruction fetched from RAM → The MAR holds an address, not an instruction. The fetched instruction or data is held in the MDR.
MAR sends the address along the data bus → The address is sent along the address bus. The data bus carries data and instructions between the CPU and RAM.

Key Term

MAR
Memory Address Register: a CPU register that holds the address of the memory location about to be read from or written to. It holds an address, not data, and sends it along the address bus.

Fill in the Blanks

1. MAR ← PC
Hint: Type the register that sends the address of the next instruction to the MAR.
2. MAR ← PC
Hint: Type the register that receives the address and holds the location about to be read or written.
3. SEND MAR ON THE ADDRESS BUS
Hint: Type the name of the bus that carries the MAR's contents to memory.
4. // MAR holds an address, not data
Hint: Type the kind of value the MAR holds, as opposed to data.
5. MAR ← PC MDR ← RAM[MAR]
Hint: Type the register whose stored address selects which RAM location is read.

Spot the Error

Question 1
A MAR ← MDR
B SEND MAR ON ADDRESS BUS
C MDR ← RAM[MAR]
Line A — The MAR receives the address of the next instruction from the PC. The MDR holds data, so it should not be copied into the MAR. It should be MAR ← PC.
Question 2
A PC ← 100
B MAR ← CIR
C SEND MAR ON ADDRESS BUS
Line B — During fetch the MAR gets its address from the PC. The CIR holds the current instruction, not an address to fetch from. It should be MAR ← PC.
Question 3
A MAR holds data
B MDR holds data
C RAM[MAR] gives the data
Line A — The MAR holds the address of a memory location, not data. Data is held in the MDR. It should be: MAR holds an address.
Question 4
A PC ← 5
B MAR ← PC
C SEND MAR ON DATA BUS
Line C — The MAR's address is sent along the address bus. The data bus carries data. It should be SEND MAR ON ADDRESS BUS.
Question 5
A MAR ← PC
B SEND MAR ON ADDRESS BUS
C MAR ← RAM[MAR]
Line C — The data read from RAM goes into the MDR. The MAR only holds the address of the location being read. It should be MDR ← RAM[MAR].

Student with a class code? Join your class →