Assembly language


Assembly language
Motorola 6800 Assembly Language.png
Typical secondary output from an assembler—showing original assembly language (right) for the Motorola MC6800 and the assembled form
ParadigmImperative, unstructured
First appeared1949 (1949)

In computer programming, assembly language (or assembler language),[1] sometimes abbreviated asm, is any low-level programming language in which there is a very strong correspondence between the instructions in the language and the architecture's machine code instructions.[2] Assembly language usually has one statement per machine instruction (1:1), but constants, comments, assembler directives,[3] symbolic labels of, e.g., memory locations, registers, and macros[4][1] are generally also supported.

Assembly code is converted into executable machine code by a utility program referred to as an assembler. The term "assembler" is generally attributed to Wilkes, Wheeler and Gill in their 1951 book The Preparation of Programs for an Electronic Digital Computer,[5] who, however, used the term to mean "a program that assembles another program consisting of several sections into a single program".[6] The conversion process is referred to as assembly, as in assembling the source code. The computational step when an assembler is processing a program is called assembly time. Assembly language may also be called symbolic machine code.[7][8]

Because assembly depends on the machine code instructions, each assembly language[nb 1] is specific to a particular computer architecture.[9]

Sometimes there is more than one assembler for the same architecture, and sometimes an assembler is specific to an operating system or to particular operating systems. Most assembly languages do not provide specific syntax for operating system calls, and most assembly languages[nb 2] can be used universally with any operating system, as the language provides access to all the real capabilities of the processor, upon which all system call mechanisms ultimately rest. In contrast to assembly languages, most high-level programming languages are generally portable across multiple architectures but require interpreting or compiling, a much more complicated task than assembling.

  1. ^ a b Cite error: The named reference IBM_2014_ASM was invoked but never defined (see the help page).
  2. ^ Cite error: The named reference Saxon_1962 was invoked but never defined (see the help page).
  3. ^ Cite error: The named reference Kornelis_2010 was invoked but never defined (see the help page).
  4. ^ Cite error: The named reference IBM_2014_Macro was invoked but never defined (see the help page).
  5. ^ Cite error: The named reference Wilkes_1951 was invoked but never defined (see the help page).
  6. ^ Cite error: The named reference Fairhead_2017 was invoked but never defined (see the help page).
  7. ^ Cite error: The named reference Ohio_2016 was invoked but never defined (see the help page).
  8. ^ Cite error: The named reference Archer_2016 was invoked but never defined (see the help page).
  9. ^ Cite error: The named reference OS360_2011 was invoked but never defined (see the help page).


Cite error: There are <ref group=nb> tags on this page, but the references will not show without a {{reflist|group=nb}} template (see the help page).


Powered by 654 easy search