KMD

Simple ARM assembler

This is an ARM assembler, intended to support the KMD software. It is available free for educational purposes; if you use it for other purposes the your conscience may persecute you through eternity.

It was written, in C, for educational purposes in the School of Computer Science at the University of Manchester after ARM Ltd. withdrew their educational support. For backward compatibility it therefore uses something closer to the `standard' syntax than the GNU ARM tools. It is not fully compatible: macros and conditional assembly have not yet been added and some of the expression operators are less FORTRAN-like than ARM's.

This is software written for our own use, constantly (if very gradually) tinkered with and improved. Whilst we believe it to function correctly it is in no way guaranteed. The source is freely examinable; you may believe you can write better code ... and you're quite free to do so!

This software is available free for educational purposes. If this is useful and you want to say so, feel free to do so. However this software comes without any support whatsoever and any questions will be ignored. You can download a compressed tar file (updated 8/5/07). There are three files within: a single C source file, an accompanying mnemonics data file which defines token values and a brief manual in ASCII. If you have a C compiler then there is enough here to get you going.

The manual is also available here.

This assembler is intended to support KMD; it can therefore output in the KMD internal format. It will also dump ASCII hex or ELF. If you want other output formats they should be easy enough to add: all bytes are dumped out through a single procedure (and that's the only clue you get).

In this version architectures up to v5TE are supported. There is no v6, v7, NEON or Thumb 2 support as yet and no immediate plans to add these as they are not necessary for our teaching purposes.