Low-Level Programming (Cambridge (CIE) A Level Computer Science): Revision Note
Exam code: 9618
Low-level programming
How do I write low-level code using addressing modes?
Machine code and assembly language are examples of low-level languages and were introduced in section 4 - Assembly Language Basics
Before continuing, make sure you understand the different addressing modes
Immediate addressing
Syntax:
LOAD #value
Meaning: Load a constant value directly into the accumulator
LOAD #5 ; Load the constant value 5 into the accumulator
ADD #3 ; Add 3 to the accumulator
STORE 200 ; Store result at memory address 200
Use when you want to work with literal values, not data in memory
Direct addressing
Syntax:
LOAD address
Meaning: Load the value stored at the specified memory address
LOAD 100 ; Load the value stored at memory address 100
ADD 101 ; Add the value at address 101
STORE 102 ; Store result in address 102
Use when the data is stored at known memory addresses
Indirect addressing
Syntax:
LOAD @address
Meaning: The address given points to another address, where the data is stored
LOAD @150 ; Load value from the address stored in location 150
STORE 200 ; Store it in address 200
Example:
Memory[150] = 300
Memory[300] = 42
LOAD @150
loads 42 into the accumulator.
Use when data is stored in dynamically referenced locations
Indexed addressing
Syntax:
LOAD base[X]
Meaning: Load from base address + index register (e.g.
X
)
LOAD 500[X] ; Load value from address (500 + contents of index register X)
ADD 501[X] ; Add value from another offset
Assume:
X = 2
This will access address 502 and 503
Use for working with arrays or tables, where the index changes
Relative addressing
Syntax:
BRANCH offset
Meaning: Jump to a new instruction relative to the current instruction
BRZ +3 ; If accumulator is zero, skip 3 lines ahead
BRP -2 ; If positive, jump 2 lines back
Used in control flow:
LOOP: LOAD #1
SUB 200
BRZ END
BR -3 ; Loop back to LOOP
END: HALT
Use for loops and conditional branches without needing absolute addresses
You've read 0 of your 5 free revision notes this week
Unlock more, it's free!
Did this page help you?