ARM ASSEMBLER
ARM ASSEMBLER

In front, an ARM610 (33MHz) processor and support circuitry on a RiscPC processor card.
The RiscPC can accept two processors, the card behind the ARM being an Intel 486SXL-40
also clocked at 33MHz. Note the incredible size difference between the two processors.

On the left, an ARM710 processor card with a British 10 pence coin to give you an idea of size.
On the right, the original series 80486 co-processor.
It gets rather hot, but not hot enough to require a heatsink or fan.
The ARM, on the other hand, gets most of its heat simply by being near the 486!
The other big chip on the co-processor card is the ASIC, a device to munge the 80486 I/O into
something that can interface with the ARM processor bus.
80x86 assembler for Pentium™, Celeron™ etc processors...
If a search engine brought you here, and you are looking for x86 assembler, then you are VERY much in the wrong place!Instead, you may find this resource useful ..... http://webster.cs.ucr.edu/.
The documents here relate to the low-power high-performance ARM processors used in PDAs, mobile phones, laser printers, Gameboy Advance, and of course the RISC OS computer range (formerly made by Acorn Computers, Cambridge, UK).
A lot of the detail relates to programming the ARM within the RISC OS environment, but it should also serve as a general resource for those programming the ARM under any system. Please note, however, that the 'Thumb' instruction set is not (yet) described.
Introduction
- News
There are no 'new!' markers here,
so be sure to read this to see what's new.

The instruction set
- Instruction Quick Finder - lists all ARM instructions I'm aware of
- Instruction Quick Finder - a shorter version, for typical RISC OS coding

The ARM processor

The BASIC assembler

Relocatable Modules

Useful hints

APCS

32-bit operation

Mathematics co-processor
- Floating Point Unit - a brief overview
Provided for completeness.

Hardware
- Interfacing with hardware
Podules, and the FDC37C665.

Hackery

Can't find what you're after?
Search this site! |

Examples
- Example 4: Resetter module
...including how to write a simple relocatable module.
- Example 5: Mouse position display
...Example of APCS assembler.
(requires objasm v2.00 and link v4.00 (or later))
- Example 6: Mode 21 -> 28 converter
...Example of interworking APCS assembler and C.
(requires objasm v2.00, link v4.00, and cc v4.00 (or later))
- Example 7: DiscAccess (and DiscAccess Revisited)
...Fakes a blinking harddisc activity indicator.
Example of vector claiming and callbacks, in a module.
(revisited - an example of how to optimise)
- Example 8: Rebound
...A game!
Demonstrates a stand-alone program, and floating point maths.
- Example 9: lowercase()
...Rewriting a commonly-used C function.
More interworking assembler and C.
(requires objasm v2.00, link v4.00, and cc v4.00 (or later))
See also:
- Example 9b: lowercase() ... again!
...some rather interesting time-experiments.
(requires the 26/32 compiler and assembler tools (can be easily modified))
- Example 101: Webite
...what better example than a web browser!
(well, sources for RISC OS would be nice - but... I'm sure!)

Opinion

Newsflash!
- My new computer!
I bought a programmer's RiscPC from CJE Micro's RISC OS Programmer's Initiative. This is what I thought (in January 2001).

Links
- The Bush Internet box IBX-100
As the Bush box information is in /assembler/resources/, this lead some people to figure that this is part of my assembler section. It isn't actually... But here's a link in case you came here looking for it.
The reason why the pages are in with the assembler stuff is long and tedious. Don't ask.

If the downloads don't work...

Archives
IMPORTANT The archives are now in Zip Deflate format. Early versions of Spark and PKUnZip may have difficulty in extracting these files. However SparkFS, SparkPlug (see link below) and WinZip should handle them without problem.This change has been brought around by the fact that several non-RISC OS users wished to view the documents, there were difficulties with viewing the HTML directly from the archive (this works fine with SparkFS), and Zip deflate compresses better than the Spark format (429K rather than 538K).
- Download all of the example source (Zip deflate archive; 271K)
Last update 2004/03/10
- Download SparkPlug v2.25 (84K) (by David Pilling)
To use this software:- Set the filetype of the downloaded file to BASIC (&FFB), if it is not already.
- Change the current directory to where you would like SparkPlug to be written to. You can skip this step if it is fine to temporarily write to the root of the currently chosen drive.
- Double-click on the file to begin extraction.
*RAM
(to select RAMdisc), then decompress to there, and finally to drag the decompressed application to where you'd like it to be. You'll need a RAMdisc of at least 208K.

And finally...
Like the rest of heyrick.co.uk, this section was written entirely by hand with !Edit (a fairly basic file editor); originally on a 4Mb A5000, latterly on a 32Mb RiscPC 710. No specialised site development tools were used, and don't hold your breath waiting for fancy flash introductions and whizzy Java front-ends. It ain't gonna happen. The content rules. Anything else is only going to obscure the bigger picture. The top titles are in a purpley colour. That, and a few pictures of sexy hardware, are about as fancy as it gets.
The HeyRick assembler site has had approximately 769817 'hits' since Wednesday, 2nd August 2000.
Last updated 6th July 2009.
![]() ![]() If you have any queries or comments regarding the rating of this area, please email me. If you have any comments on the PICS system in general, please visit the ICRA. |
Copyright © 1999-2004 Richard Murray - for more information, please read the News page. |
Copyright © 2004-2008 Rick Murray
