From your first value to your first loop
Check your understanding
Instruction reference
Destination comes first. operand2 is #integer or Rm. Registers are R0–R12. Labels end in a colon. Use ; or // for comments.
AQA’s published instruction set ↗
This is a 32-bit teaching interpreter of AQA’s ARM-style language. Core mode uses 256 word-addressed cells, one per instruction or DAT value, and a separate PC. Simulator extensions add memory through address 4095, including a 32×24 RGB screen at 256–1023. It does not emit ARM machine code. STR can write data cells but cannot overwrite instructions. Signed arithmetic wraps at 32 bits. CMP sets N/Z/C/V; signed branches use N/V and Z. DAT and the optional I/O, indirect addressing, graphics and WAIT facilities are simulator additions.
Program
SOURCE EDITOR| BP | Addr | Instruction / data |
|---|
Click BP to toggle a breakpoint. The arrow marks the next instruction.
Processor
32 BITMemory
4096 CELLS / EXTENDED| Address | Value / instruction |
|---|
Pixel display
Click the screen to use arrows / WASD. RGB pixels: memory 256–1023. Snake needs Graphics / game speed.
Graphics & Snake tutorial
EXTENSIONSMemory becomes a picture
Every pixel has an address: 256 + y × 32 + x. Write an RGB colour with STR and inspect it with LDR.
Snake runs as editable assembly. Its circular queue, collisions, apples and score all live in the simulated processor and memory.
Keyboard: INP Rd,5. Random word: INP Rd,8. Frame delay: WAIT #140.
Load lessons 9 and 10 for guided exercises.
Richard Pawson’s Assembly Language Programming ↗Original examples inspired by these teaching topics. ARMlite textbook programs use a different graphics map and further instructions.
Console
SIMULATOR I/OInput queue is empty.