Jump to content

Microassembler

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Peter Flass (talk | contribs) at 13:30, 25 October 2014 (Planned to add back the link to MikroSym, but it doesn't seem to include microassembler, hence not relevant here.). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

A microassembler is a computer program that helps prepare a microprogram, called firmware, 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 computer hardware. On a microprogrammed computer the microprogram implements the operations of the instruction set in which any normal program (including both application programs and operating 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 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.

In the process of microcode 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 sold, in order to adaptat to specific operating systems or to fix hardware bugs. However, a commonly usable microassembler for today's CPUs is not available to manipulate the microcode. Unfortunately, it is difficult to obtain open knowledge about changing the microcode because of intellectual property reasons.

  • "Mikrocodesimulator MikroSim 2010". 0/1-SimWare. Retrieved 2010-10-03.
  • "P6 Family Processor Microcode Update, Feature Review" (PDF). J. Molina, W. Arbaugh. 2000. Retrieved 2010-10-03.
  • "A Brief History of Microprogramming". M. Smotherman. 2010. Retrieved 2010-10-03.
  • "Computer Structures: Principles and Examples, Part 2, REGIONS OF COMPUTER SPACE, Section 1, MICROPROGRAM-BASED PROCESSORS, Seite 151 ff". McGraw-Hill Computer Science Series. Retrieved 2010-10-03.
  • "Intel(R) 64 and IA-32 Architectures Software Developer's Manual, Volume 3A: System Programming Guide, Part 1, Chapter 8.11: "Microcode update facilities"" (PDF). Intel Corporation. December 2009. Retrieved 2010-10-03.