CAS Community   >   Resources   >  

AQA Assembly Language Simulator

A Simulator to assemble and run programs written in the AQA specified Assembly Language

Peter Higginson

Created by Peter Higginson
last edited Jan 05 2018 by Peter Higginson

This is my second attempt at producing something that might be useful in teaching how a computer works at the assembly language level using more modern instructions than the LMC. My first attempt produced a full RISC machine but was generally too complex for secondary school use.

This simulator is based on “exactly” the AQA Assembly Language Instructions with very few extensions. It assembles the instructions into 32 bit ARM code and then executes them from a simulated memory.

It is now finished, with moving blobs to show the transfers between the registers and memory. It has only the AQA instructions but I have extended the modes so that as well as absolute and direct, there is register offset and indirect.

Within the AQA specification there is no real way to do indirection. You are not given the instruction format so you cannot build instructions (as in the LMC for example). They express a bias against knowing real memory addresses and so the only consistent indirect access supported by the ARM processors is [Rn+<label>].

In the simulator you can see the memory addresses, so [Rn] works and is useful. There is an issue as to whether to support byte addressing or word addressing and the simulator defaults to word addressing but has an option to do byte addressing.

You can find it at

For more information, please click on the INFO button once the page has loaded. The simulator is written in JavaScript and should run on most browsers.

Feedback and Comments

Available when logged in (join via the front page, for free):
  • View 4 comments on this resource.
  • View resource history, links to related resources.
  • Leave feedback for the author(s), or help by editing the resource.

© 2021 BCS, The Chartered Institute for IT Registered charity: No. 292786
Using the websiteDisclaimer of liabilityCookies policyPrivacy notice