ARMlite Documentation

ARMlite simulates a simple computer built around a cut-down version of a 32-bit ARM processor. It was extended from Peter's earlier simulators specifically to meet the needs of a book written by Richard Pawson. Richard's help in designing both the styling and functionality of ARMlite's user interface is gratefully acknowledged.

Releases

The current release is ARMlite v1.3.1.

v1.3 adds the .LOC directive and fixes a couple of max-memory bugs that testing it brought to light. Duplicate hosting sites are now available at https://www.peterhigginson.co.uk/ARMlite and https://zigzageducation.co.uk/ARMlite.

The v1.2 point releases do not have functional changes. They do have changes to reduce server interactions and to rate limit load requests. Please do not use automatic systems to simultaneously load a classroom of computers because it overloads the hosting service. In addition, v1.2.2 has a fix to remove an erroneous error message and v1.2.4 has a fix to trap illegal or unsupported instructions correctly.

v1.2 has a more complete implementation of all the ARM shift instructions (click for details).

It also has a varying Program area width (depending on the browser window), aligning of comments and scaling of the binary mode display. See the "Simulation configuration" section of the manual to configure these features.

There are no changes to previously supported ARM instructions or their execution.

ARMlite Programming Reference Manual

The features and assembly language supported by ARMlite are documented in the ARMlite Programming Reference Manual.

For instructions on how to use the simulator and set breakpoints see see page 8 of Assembly Language Programming.

The Book

Assembly Language Programming by Richard Pawson with Peter Higginson, is a textbook written specifically for teaching A-level. This is part of a series of books called "Computer Science from the Metal Up" by Richard which you can find on his web site using this link. Free download of the student versions is available. You can also email Richard (rpawson at metalup.org).

The AQA Assembly Language

Appendix I of the book explains the restrictions that need to be followed when using ARMlite to keep to instruction set used by the AQA in previous examinations. In particular the byte vs. word addressing issues need to be understood. A copy of just the Appendix is here.

Experimental and Advanced Features

ARMlite has a number of other features to enable more advanced programs to be written. They are documented here.

Demonstration

If you want to see an instant demonstration of what ARMlite is capable of, use our 'Easter Egg': click Edit, then type the word demo into the Program area, and then click Submit. You'll see a high-speed implementation of Conway's 'Game of Life'.

Use in Classrooms

It is a condition of use that you do not make automated or synchronised attempts to load the software. This overloads the hosting service.

Some overloads have been traced to people using a management system to load a room full of computers at the same time. I ask you not to do this and get the students to do their own setup (obviously without deliberately synchronising). The average load over the day is insignificant, and I really want people to use my stuff; however I have implemented rate limiting to limit loads to two a second with automatic retries.

Please do not hit F5 or an equivalent; be patient and let me choose the retry interval based on the current load. Where this fails to work, you will be required to login to use the Simulator or your IP address will be blocked.

Bugs, Questions etc.

Peter is more than happy to get email from anyone using ARMlite, whether reporting a bug, asking a question or just a comment. His email address is "plh256 at hotmail.com".

Peter and Richard 1/9/2024