This articleneeds additional citations forverification. Please helpimprove this article byadding citations to reliable sources. Unsourced material may be challenged and removed. Find sources: "Microassembler" – news ·newspapers ·books ·scholar ·JSTOR(October 2014) (Learn how and when to remove this message) |
Amicroassembler is acomputer program that helps prepare amicroprogram, calledfirmware, to control the low level operation of a computer in much the same way anassembler helps prepare higher level code for aprocessor. The difference is that the microprogram is usually only developed by the processor manufacturer and works intimately with thecomputer hardware. On a microprogrammed computer the microprogram implements the operations of theinstruction set in which any normal program (including bothapplication programs andoperating systems) is written. 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 differentinstruction sets. After it is assembled, the microprogram is then loaded to acontrol store to become part of the logic of aCPU'scontrol 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 theirMICRO2 microassembler for a very wide range of computer architectures and implementations.
If a given computer implementation supports awriteable control store, the microassembler is usually provided to customers as a means of writing customized microcode.
In the process ofmicrocode assembly it is helpful to verify the microprogram with emulation tools before distribution. Nowadays, microcoding has experienced a revival, since it is possible to correct and optimize the firmware of processing units already manufactured or sold, in order to adapt to specificoperating systems or to fix hardware bugs. However, a commonly usable microassembler for today's CPUs is not available to manipulate the microcode. Knowledge of a processor's microcode is usually considered proprietary information so it is difficult to obtain information about how to modify it.