[Home]Assembler

HomePage | Recent Changes | Preferences

An assembler is a computer program for translating assembly language - essentially, a mnemonic representation of machine language - into object code.

As well as translating instruction mnemonics into opcodes?, assemblers provide the ability to provide symbolic names for memory locations (saving tedious calculations and manually updating addresses when a program is slightly modified), and macro facilities for performing textual substitution - typically use to encode common short sequences of instructions.

Assemblers are far simpler to write than compilers for [high-level language]?s, and have been available since the 1950s. Modern assemblers, especially for RISC based architectures, such as MIPS, SPARC? and [HP Precision]? optimize instruction scheduling to exploit the [CPU pipeline]? efficiently. Most modern assemblers are 'macro assemblers', which allow complex macro constructs and abstract datatypes, such as structures.


The term "Assembler" is also used in Nanotechnology to refer to a construction machine that manipulates and builds with individual atoms or molecules. One of the prime goals of long-term nanotech research is the production of a programmable self-replicating assembler. This is a device which can make a complete copy of itself given raw materials and energy. After sufficient quantities of assembers are available, they are then re-programmed to produce something useful.

Nature abounds with self-replicating assemblers called bacteria, however they are not easily programmable. Some progress has been made in this area, where researchers have inserted genes for a particular protein into a bacteria. One of the first examples of this is the immune-system hormone interferon.


HomePage | Recent Changes | Preferences
This page is read-only | View other revisions
Last edited November 19, 2001 10:27 am by MartyMcGowan (diff)
Search: