www.riscos.com Technical Support:
Acorn Assembler



Acorn Assembler is a development environment for producing RISC OS desktop applications and relocatable modules written in ARM assembly language. It consists of a number of programming tools which are RISC OS desktop applications. These tools interact in ways designed to help your productivity, forming an extendable environment integrated by the RISC OS desktop. Acorn Assembler may be used with Acorn C/C++ (a part of this product) to provide an environment for mixed C, C++ and assembler development.

This product includes tools to:

  • edit program source and other text files
  • search and examine text files
  • examine some binary files
  • assemble small assembly language programs
  • assemble and construct more complex programs under the control of makefiles, these being set up from a simple desktop interface
  • squeeze finished program images to occupy less disk space
  • construct linkable libraries
  • debug RISC OS desktop applications interactively
  • design RISC OS desktop interfaces and test their functionality
  • use the Toolbox to interact with those interfaces.

Most of the tools in this product are also of general use for constructing applications in other programming languages, such as C and C++. These non-language-specific tools are described in the accompanying Desktop Tools guide.


Installation of Acorn Assembler is described in the Installing Acorn C/C++ of the accompanying Desktop Tools guide .

Assembler tools

The assembler provided includes the following features:

  • full support of the ARM instruction set, for all versions up to and including the ARM7M core
  • global and local label capability
  • powerful macro processing
  • comprehensive expression handling
  • conditional assembly
  • repetitive assembly
  • comprehensive symbol table printouts
  • pseudo-opcodes to control printout.

The Assembler ObjAsm creates object files which cannot be executed directly, but must first be linked using the Link tool. It is often most efficient to construct larger programs from several portions, assembling each portion with ObjAsm before linking them all together with Link. Object files linked with those produced by ObjAsm may be produced from some programming language other than assembler, for example C.

The Link tool is described in the Link of the accompanying Desktop Tools guide .

This user guide

This document is a reference guide to ObjAsm, which is the only tool in this product which is not used for programming in other languages. The others are described in the accompanying Acorn C/C++ and Desktop Tools guides. It is assumed that you are familiar with other relevant Archimedes documentation, such as the:

  • Welcome Guide supplied with your computer
  • RISC OS 3 User Guide
  • RISC OS 3 Programmer's Reference Manual.

You may also find useful one or more of the following books:

  • ARM Assembly Language Programming / P.J. Cockerell - Computer Concepts/MTC, 1987.
  • Archimedes Assembly Language: A Dabhand Guide / M. Ginns - Manchester, UK: Dabs Press, 1988.
  • The ARM RISC Chip - A Programmer's Guide / A. van Someren and C. Atack - Wokingham, UK: Addison-Wesley, 1993.
Note on program examples

Both general and specific examples of syntax and screen output are given, but there are occasions where the full syntax of an instruction and its accompanying screen appearance would obscure the specific points being made. It follows, therefore, that not all the examples given in the text can be used directly since they are incomplete.

Conventions used in this manual

The Assembler has its own interpretations of the punctuation symbols and special symbols which are available from the keyboard. These are:

! " # $ % & ^ @ ( )
[ ] { } | : . , ; +
- / * = < > ? _

In order to distinguish between characters used in syntax and descriptive or explanatory characters, typewriter style typeface is used to indicate both text which appears on the screen and text which can be typed on the keyboard. This is so that the position of relevant spaces is clearly indicated.

The following typographical conventions are used throughout this manual:

Convention Meaning
filename Text that you must replace with the name of a file, register, variable or whatever is indicated.
&1C Hexadecimal numbers are preceded with an ampersand.
«instruction» Italic guillemots «» enclose optional items in the syntax.

For example, the Assembler ObjAsm accepts a three field source line which may be expressed in the form:

«instruction» «label» «;comment»

ALIGN Text that you type exactly as it appears in the manual. For example:

L321 ADD Ra,Ra,Ra,LSL #1 ;multiply by 3

This edition Copyright © 3QD Developments Ltd 2015
Last Edit: Tue,03 Nov 2015