An '''Assembler''' is a program that converts a human-readable (and, more particularly, human-writable) form of machine instructions (often called ''Assembly Language'' or ''Assembler'') into a machine-readable form. ---- There are often several different ''machine-readable'' forms of output possible. * Linkable, absolute location formats * Nonlinkable, absolute location formats * Linkable, relocatable formats * Nonlinkable, relocatable formats The key question with regard to the machine-readable format is, ''What are the capabilities of the tool chain programs that come after the assembler?'' There must be a loader (which loads the code into the executing machine's memory); there might be a linker (which combines different programs together into a single loadable program). The loader might be an absolute or relocating loader. These two processing programs are often underspecified and ignored, but they are crucially important to real program operation. -- ''[escargo] 9 Aug 2004'' ---- [CL] has been thinking about writing an explanation of why [Tcl] and assembly language can be good partners, a practice briefly described in, for example, "Programming down to the Silicon" [http://www.unixreview.com/documents/s=1357/ur0402i/]. In the meantime, here's a reference to the [Mac OS X] Assembler Guide [http://developer.apple.com/documentation/DeveloperTools/Reference/Assembler/]. ---- See also [Playing Assembler] for some 8080 memories...