A high-level assembler in
computing
Computing is any goal-oriented activity requiring, benefiting from, or creating computing machinery. It includes the study and experimentation of algorithmic processes, and development of both hardware and software. Computing has scientific, ...
is an
assembler for
assembly language that incorporate features found in a
high-level programming language
In computer science, a high-level programming language is a programming language with strong abstraction from the details of the computer. In contrast to low-level programming languages, it may use natural language ''elements'', be easier to ...
.
The earliest high-level assembler was probably Burroughs'
Executive Systems Problem Oriented Language (ESPOL) in about 1960, which provided an
ALGOL
ALGOL (; short for "Algorithmic Language") is a family of imperative computer programming languages originally developed in 1958. ALGOL heavily influenced many other languages and was the standard method for algorithm description used by th ...
-like syntax around explicitly-specified Burroughs
B5000 machine instructions. This was followed by
Niklaus Wirth's
PL360
PL360 (or PL/360) is a system programming language designed by Niklaus Wirth and written by Wirth, Joseph W. Wells Jr., and Edwin Satterthwaite Jr. for the IBM System/360 computer at Stanford University. A description of PL360 was published in e ...
in 1968; this replicated the Burroughs facilities, with which he was familiar, on an IBM
System/360
The IBM System/360 (S/360) is a family of mainframe computer systems that was announced by IBM on April 7, 1964, and delivered between 1965 and 1978. It was the first family of computers designed to cover both commercial and scientific applic ...
. More recent high-level assemblers are
Borland's
Turbo Assembler
Turbo Assembler (sometimes shortened to the name of the executable, TASM) is an assembler for software development published by Borland in 1989. It runs on and produces code for 16- or 32-bit x86 MS-DOS and compatible on Microsoft Windows. It c ...
(TASM),
Netwide Assembler
The Netwide Assembler (NASM) is an assembler and disassembler for the Intel x86 architecture. It can be used to write 16-bit, 32-bit ( IA-32) and 64-bit (x86-64) programs. It is considered one of the most popular assemblers for Linux.
It wa ...
(NASM),
Microsoft
Microsoft Corporation is an American multinational corporation, multinational technology company, technology corporation producing Software, computer software, consumer electronics, personal computers, and related services headquartered at th ...
's
Macro Assembler
Macro (or MACRO) may refer to:
Science and technology
* Macroscopic, subjects visible to the eye
* Macro photography, a type of close-up photography
* Image macro, a picture with text superimposed
* Monopole, Astrophysics and Cosmic Ray Observa ...
(MASM),
IBM's
High Level Assembler
A high-level assembler in computing is an assembler for assembly language that incorporate features found in a high-level programming language.
The earliest high-level assembler was probably Burroughs' Executive Systems Problem Oriented Langu ...
(HLASM) for
z/Architecture systems, Alessandro Ghignola's Linoleum,
X# used in Cosmos and Ziron.
High-level assemblers typically provide instructions that directly assemble
one-to-one
One-to-one or one to one may refer to:
Mathematics and communication
*One-to-one function, also called an injective function
*One-to-one correspondence, also called a bijective function
*One-to-one (communication), the act of an individual comm ...
into low-level
machine code
In computer programming, machine code is any low-level programming language, consisting of machine language instructions, which are used to control a computer's central processing unit (CPU). Each instruction causes the CPU to perform a ver ...
as in any assembler, plus control statements such as IF, WHILE, REPEAT...UNTIL, and FOR, macros, and other enhancements. This allows the use of high-level control statement abstractions wherever maximal speed or minimal space is not essential; low-level statements that assemble directly to machine code can be used to produce the fastest or shortest code. The end result is assembly
source code
In computing, source code, or simply code, is any collection of code, with or without comment (computer programming), comments, written using a human-readable programming language, usually as plain text. The source code of a Computer program, p ...
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 and the ability to call functions and procedures using a high-level-like syntax (i.e., the assembler automatically produces code to push parameters on the
call stack
In computer science, a call stack is a stack data structure that stores information about the active subroutines of a computer program. This kind of stack is also known as an execution stack, program stack, control stack, run-time stack, or mach ...
rather than the programmer having to manually write the code to do this).
High-level assemblers also provide data abstractions normally found in high-level languages. Examples include:
data structure
In computer science, a data structure is a data organization, management, and storage format that is usually chosen for Efficiency, efficient Data access, access to data. More precisely, a data structure is a collection of data values, the rel ...
s,
unions,
classes, and
sets. Some high-level assemblers (e.g.,
TASM and
High Level Assembly (HLA)) support
object-oriented programming
Object-oriented programming (OOP) is a programming paradigm based on the concept of " objects", which can contain data and code. The data is in the form of fields (often known as attributes or ''properties''), and the code is in the form of ...
.
References
*
https://www.scribd.com/doc/7326575/Assembly-Language] (xiv+294+4 pages) (NB. Presents definitions and examples of older high-level assemblers.)
* ''The Art of Assembly Language'',
Randall Hyde
Randall Hyde (born 1956) is best known as the author of ''The Art of Assembly Language'', a popular book on assembly language programming. He created the Lisa assembler in the late 1970s and developed the High Level Assembly (HLA) language.
Bio ...
br>
Webster site with information and links on HLA and assembler
Assemblers, *High-level
{{comp-sci-stub