A
microassembler (sometimes called a meta-assembler) is a
computer program that helps prepare a
microprogram to control the low level operation of a computer in much the same way an
assembler helps prepare higher level code for a
processor. The difference is that the microprogram is usually only developed by the processor manufacturer and works intimately with the hardware. The microprogram defines the
instruction set any normal program (including both
application programs and
operating systems) is written in. The use of a microprogram allows the manufacturer to fix certain mistakes, including working around
hardware design errors, without modifying the hardware. Another means of employing microassembler-generated microprograms is in allowing the same hardware to run different
instruction sets. After it is assembled, the microprogram is then loaded to a
control store to become part of the logic of a
CPU's
control unit.
Some microassemblers are more generalized and are not targeted at a single computer architecture. For example, through the use of macro-assembler-like capabilities, Digital Equipment Corporation used their MICRO2 microassembler for a very wide range of computer architectures and implementations.
If a given computer implementation supports a writeable control store, the microassembler is usually provided to customers as a means of writing customized microcode.