Converts assembly language (ASM) into machine code which is to be run on a different microprocessor from the one it was assembled on. Produces a binary output file to be uploaded to EEPROM or burned to a ROM to work with the microprocessor. An example of this would be writing a program in assembly language on a PC, and cross-assembling it to run on a Motorola 68HC11 microcontroller.
This is necessary because most microcontrollers do not have the facility to assemble their own code as PCs do. Most of the development takes place on a PC or other workstation, and the work is then tested on the microcontroller or a simulator.