::Assembly language


Language::assembly    Assembly::macro    Title::computer    Program::systems    Machine::which    Language::system

An assembly language (or assembler language<ref>Assembler language, IBM Knowledge center</ref>) is a low-level programming language for a computer, or other programmable device, in which there is a very strong (generally one-to-one) correspondence between the language and the architecture's machine code instructions. Each assembly language is specific to a particular computer architecture, in contrast to most high-level programming languages, which are generally portable across multiple architectures, but require interpreting or compiling.

Assembly language is converted into executable machine code by a utility program referred to as an assembler; the conversion process is referred to as assembly, or assembling the code.

Assembly language uses a mnemonic to represent each low-level machine instruction or operation. Typical operations require one or more operands in order to form a complete instruction, and most assemblers can therefore take labels, symbols and expressions as operands to represent addresses and other constants, freeing the programmer from tedious manual calculations. Macro assemblers include a macroinstruction facility so that (parameterized) assembly language text can be represented by a name, and that name can be used to insert the expanded text into other code. Many assemblers offer additional mechanisms to facilitate program development, to control the assembly process, and to aid debugging.

See the terminology section below for information regarding inconsistent use of the terms assembly and assembler.

Assembly language sections
Intro  Key concepts  Language design  Use of assembly language  List of assemblers for different computer architectures  Further details  Example listing of assembly language source code  See also  References  Further reading  External links  

PREVIOUS: IntroNEXT: Key concepts