Make your own free website on
Mobile Robots
Software and documentation for mobile robots


RAS - Mobile Robot Assembler

Mobile Robot Assembler (RAS) is an assembler for mobile robots and, in general, any system based on Motorola 68HC11 microcontrollers, multiplatform, expandable and free.

In the current version it recognizes the complete instruction set of the MC68HC11 microcontroller family and some directives (basically, ORG, EQU and memory allocation) that are commented in the documentation.

If you are not interested in other alternatives for programming these micros neither the features and motivations of the Mobile Robot Assembler (RAS), you can directly reach the Download area.

Other alternatives

Motorola distributes the as11, a widely used and freeware assembler for its MC68HC11 on which Randy Sargent carried out a few modifications. Its features are relatively limited, for example, macros can not be created and all the program code must go in the same source file. This causes that it is uncomfortable to work with it. However, it even offers good results for programs of certain complexity.

Another possibility within the assembler's world is to use the GNU Assembler. It is a really good product with the GNU guarantee but it could be complicated for the novice mainly in the beginning. It has everything what can be asked as assembler, a good documentation and, mainly, its open philosophy.

Also it is possible to use the C/C++ as base language, very near to the assembler language on the other hand. In this scope, the most used and portable tool is the GNU C/C++ compiler. Like the GNU Assembler, above commented, the GNU C/C++ compiler could be somewhat complicated in the beginning.

More information on other languages and development systems for this microcontroller can be readed the 68HC11 FAQ.


The main idea at the time of creating a new assembler considering the antecedents that we have mentioned is to define a development environment that can be provided by new instructions from other already existing ones. The new meta-instructions will generate the code corresponding to frequently used functions in mobile robot programs, for example, activating the analog/digital converters, reading sensor ports, movement commands for actuators, etc.

The final goal is a high level language for mobile robots formed by a library of meta-instructions included and maked in the language.

In the most basic level we have a language for programming our control system. On this level some frequently used functions in this kind of systems will be located. In higher levels, basic robot behaviors, like the well known follow-line behavior or even complete mobile robot control architectures, can be defined.

To use an assembler as base language is due to that we can take advantage of the limited resources on the robot control system. Generally they are systems with a few of memory bytes and low processing speed. The more powerful and optimized it is our meta-instructions library, the less code in assembler we will have to create.


Known bugs

To do


Additional links


Thanks to Juan González for betatesting, porting to DOS/Windows and preparing the RPM distribution. Also thanks to Cecilio Ruiz for betatesting and for their suggestions.


This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details (available on line in the Download section of this page).

The current version is BETA. During the testing we have verified that the code generated for every instruction and addressing mode is identical to the generated by the as11 assembler. The test programs are distributed the source package. They do not have any logical sense and DO NOT HAVE TO BE LOADED in the microcontroller.

© Javier de Lope Asiaín 2000-2002
Last modification

FastCounter by bCentral