Jump to content

High-level assembler

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by 63.100.235.254 (talk) at 23:28, 18 September 2003 (High Level Assembly Language). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)

High Level Assemblers are assembly language translators that incorporate features found in modern high level languages into an assembler (compiler for an assembly language).

Examples of high level assemblers include Microsoft's MASM, Borland's TASM, and the High Level Assembler (HLA, see http://webster.cs.ucr.edu).

High level assemblers typically provide all the usual low-level machine instructions plus they add statements like IF, WHILE, REPEAT..UNTIL, FOR, etc., to the base language. This allows assembly programmers to use high-level control statement abstractions wherever minimal speed or space is not absolutely required. The end result is assembly source code that is far more readable than standard assembly code while preserving the efficiency inherent with using assembly language.

High level assemblers generally provide information hiding facilities (though their capabilities vary by assembler) and the ability to call functions and procedures using a high-level-like syntax (i.e., the assembler automatically emits code to push parameters on the stack rather than the programming having to manually write the code to do this).

In addition to high level control structures, high level assemblers also provide data abstractions normally found in high level languages. Examples include structures, unions, classes, and sets. Some high level assemblers (e.g., TASM and HLA) even support object oriented programming.

David Salomon's book "Assemblers and Loaders" presents definitions and examples of older high level assemblers. Those wanting to program in a high level assembly language on the x86 PC should check out the HLA and MASM32 packages (you can find them at http://webster.cs.ucr.edu) as well as Randall Hyde's "The Art of Assembly Language" (http://www.nostarch.com and webster).