AS · Practice questions · Addressing modes

Follow the arrows.

Six original Cambridge-style questions on addressing modes, with mark-scheme style solutions.

Original questions All questions on this page are original work, written in the Cambridge AS & A Level style. They are not from past papers. They test the same concepts and skills the syllabus rewards.
Keep these straight

One question per mode.

01
Recall
[3 marks]

Describe immediate, direct and indexed addressing.

  • Immediate: the operand is the value to be used. ✓
  • Direct: the operand is the address that holds the value. ✓
  • Indexed: the address used is the operand plus the contents of the index register. ✓
02
Trace
[4 marks]

The index register holds 3. Memory holds:

Address500501502503504
Contents50295001431

Give the contents of the ACC after each instruction is executed: (a) LDD 502, (b) LDI 502, (c) LDX 501, (d) LDM #502.

  • (a) 500 (the contents of 502). ✓
  • (b) 502 (502 holds 500; 500 holds 502). ✓
  • (c) 31 (501 + 3 = 504, which holds 31). ✓
  • (d) 502 (the value itself). ✓
03
Explain
[2 marks]

Explain the difference between indirect addressing and indexed addressing.

  • Indirect: the operand is the address of a location that holds the address of the data. ✓
  • Indexed: the address of the data is found by adding the contents of the index register to the operand. ✓
04
Apply
[2 marks]

Using the memory in question 2, with IX holding 3, the ACC holds 500. State whether the compare in each instruction is True or False: (a) CMI 500, (b) CMP 503.

  • (a) 500 holds 502; 502 holds 500; the ACC is 500, so True. ✓
  • (b) 503 holds 14; the ACC is 500, so False. ✓
05
Explain
[2 marks]

Explain why relative addressing allows a program to be relocated in memory.

  • Each address is given as an offset from the address of the current instruction. ✓
  • So if the whole program is moved, the offsets still point to the correct locations (no addresses need changing). ✓
06
Analysis
[2 marks]

A programmer wants to add 10 to the accumulator but writes ADD 10. Explain the error and correct it.

  • ADD 10 uses direct addressing: it adds the contents of address 10. ✓
  • It should be ADD #10 (immediate addressing) to add the number 10. ✓

Mark this once you have attempted all six and checked your working. It records a Practiced badge on the topic and adds a one-time bonus. Revealing the solutions alone does not count.