page_title: Assembly language
hierarchical_section_title: Assembly language
caption_attribution_description: An assembly language listing for a Motorola 6800 8-bit microprocessor. This is a page from a "Monitor" program that communicates to a serial terminal connected to a MC6850 Asynchronous Communications Interface Adapter (ACIA). The routines here initialize the ACIA (INITA), read an ASCII character (INCH) and read a hexadecimal digit (INHEX). The first line of the INCH routine is located at hexadecimal memory address C010 and has the label INCH in the first text column. The instruction "LDA A ACIA" is a load accumulator A (opcode B6) from location 8004. (The symbol ACIA is defined as 8004 on a previous page.) This program was used in a single board Motorola MC6802 system that was designed and built as a university project in 1980 by Michael Holley.
context_page_description: In computer programming, assembly language, often 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. Because assembly depends on the machine code instructions, every assembler has its own assembly language which is designed for exactly one specific computer architecture. Assembly language may also be called symbolic machine code.
  Assembly code is converted into executable machine code by a utility program referred to as an assembler. The conversion process is referred to as assembly, as in assembling the source code. Assembly language usually has one statement per machine instruction, but comments and statements that are assembler directives, macros, and symbolic labels of program and memory locations are often also supported.
  The term "assembler" is generally attributed to Wilkes, Wheeler and Gill in their 1951 book The preparation of programs for an electronic digital computer, who, however, used the term to mean "a program that assembles another program consisting of several sections into a single program".
context_section_description: In computer programming,  assembly language (or assembler language), often 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. Because assembly depends on the machine code instructions, every assembler has its own assembly language which is designed for exactly one specific computer architecture. Assembly language may also be called symbolic machine code.
  Assembly code is converted into executable machine code by a utility program referred to as an assembler. The conversion process is referred to as assembly, as in assembling the source code. Assembly language usually has one statement per machine instruction (1:1), but comments and statements that are assembler directives, macros, and symbolic labels of program and memory locations are often also supported.
  The term "assembler" is generally attributed to Wilkes, Wheeler and Gill in their 1951 book The preparation of programs for an electronic digital computer, who, however, used the term to mean "a program that assembles another program consisting of several sections into a single program".
  Each assembly language is specific to a particular computer architecture and sometimes to an operating system. However, some assembly languages do not provide specific syntax for operating system calls, and most assembly languages 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.
  The computational step when an assembler is processing a program is called assembly time.
caption: Typical secondary output from an assembler—showing original assembly language (right) for the Motorola MC6800 and the assembled form
exif: {}