Assembly Language

(redirected from Assembler programming)
Also found in: Dictionary, Thesaurus, Financial, Wikipedia.

assembly language

[ə′sem·blē ‚laŋ·gwij]
(computer science)
A symbolic, nonbinary format for instructions (human-readable version of machine language) that allows mnemonic names to be used for instructions and data; for example, the instruction to add the number 39321 to the contents of register D1 in the central processing unit might be written as ADD#39321, D1 in assembly language, as opposed to a string of 0's and 1's in machine language.

Assembly Language


a simple programming language; a system of commands for an arbitrary machine capable of carrying out elementary operations which are considerably more complex than those carried out by a given computer.

The most common assembly languages are one-to-one, in which the fundamental element of language (operator, variable) is converted into a single command upon translation into machine language. With the aid of a one-to-one assembly language, one can write any program that is possible for a computer. Programming in a one-to-one assembly language is equivalent to programming in machine language; nevertheless, it is more convenient for a programmer and accelerates the work approximately threefold.

Assembly languages other than one-to-one are not intended as systems of computer commands but rather as classes of problem solutions which considerably accelerate the work of programming; they do not permit writing a program of the same high quality attainable in principle by programming in machine language or a one-to-one assembly language. The fundamental element of language (the operator) in an assembly language of a type other than one-to-one is converted as a rule into a combination of commands upon translation into machine language. It is impossible to indicate the line of demarcation between assembly and other (more complex) programming languages. The BESM-6 and the Ural are examples of one-to-one assembly languages developed in the USSR. The Inzhener language for the Minsk computer is an example of a higher assembly language.

The algorithms given in assembly language are converted to a computer program by means of a so-called program translator, which can perform very simple storage distribution for the programmer; this program translator automatically arranges the program out of separate components by using the subprogram library and other operations.

In many automatic programming systems, the assembly language serves as an intermediate language in translation from some programming language into a machine language.


Assembly Language

(language, robotics)
(AL) A language for industrial robots developed at Stanford University in the 1970s.

["The AL Language for an Intelligent Robot", T. Binford in Langages et Methods de Programation des Robots Industriels, pp. 73-88, IRIA Press 1979].

["AL User's Manual", M.S. Mujtaba et al, Stanford AI Lab, Memo AIM-323 (Jan 1979)].

assembly language

(Or "assembly code") A symbolic representation of the machine language of a specific processor. Assembly language is converted to machine code by an assembler. Usually, each line of assembly code produces one machine instruction, though the use of macros is common.

Programming in assembly language is slow and error-prone but is the only way to squeeze every last bit of performance out of the hardware.

Filename extension: .s (Unix), .asm (CP/M and others).

See also second generation language.

assembly language

A programming language that is one step away from machine language. Each assembly language statement is translated into one machine instruction by the assembler. Programmers must be well versed in the computer's architecture, and, undocumented assembly language programs are difficult to maintain. It is hardware dependent; there is a different assembly language for each CPU series.

It Used to All Be Assembly Language
In the past, control programs (operating systems, database managers, etc.) and many applications were written in assembly language to maximize the machine's performance. Today, C/C++ is widely used instead. Like assembly language, C/C++ can manipulate the bits at the machine level, but it is also portable to different computer platforms. There are C/C++ compilers for almost all computers.

Assembly Language Vs. Machine Language
Although often used synonymously, assembly language and machine language are not the same. Assembly language is turned into machine language. For example, the assembly instruction COMPARE A,B is translated into COMPARE contents of memory bytes 32340-32350 with 54567-54577 (where A and B happen to be located). The actual binary format of the machine instruction is specific to the computer it is running in.

They Can Be Quite Different
Assembly languages are quite different between computers as is evident below, which takes 16 lines of code for the HP and 82 lines for the x86. The example changes Fahrenheit to Celsius.

HP 3000

  intrinsic  read,print,binary,ascii;
  array buffer(0:17);
  array string(0:3);
  byte array b'string(*) = string;
  integer ftemp, ctemp, len;
    move buffer:= "Enter Fahrenheit ";
    print (buffer,-30,%320);
    len:=read (string,-4);
    ftemp:= binary(b'string,len);
    ctemp:= (ftemp-32) * 5 / 9;
    len:= ascii(ctemp,1-,b'string);
    move buffer:= "Celsius is ";
    move buffer(14) := string, (-len);
    print (buffer,-32,%0);

          PC (Intel x86)

  cseg    segment para public 'CODE'
          assume  cs:cseg,ds:cseg
          jmp     start1
  msgstr  db      'Enter Fahrenheit '
  crlf    db      13,10,'$'
  nine    db      9
  five    db      5
  outstr  db      'Centrigrade is $'
  start1: push    ds
          push    cs
          pop     ds
          mov     dx,offset cseg:msgstr
          mov     ah,9
          int     21h
  cent:   call    getnumb
          test    ax,ax
          je      exit
          push    ax
          mov     dx,offset cseg:outstr
          mov     ah,9
          int     21h
          pop     ax
          sub     ax,32
          jns     c1
          push    ax
          mov     dl,'-'
          mov     ah,6
          int     21h
          pop     ax
          neg     ax
  cl:     mul     five
          div     nine
          call    putval
          mov     dx,offset cseg:crlf
          mov     ah,9
          int     21h
          jmp     sloop
  exit:   pop     ds
          mov     ah,4ch
          int     21h
          xor     bx,bx
  llp:    mov     dl,0ffh
          mov     ah,1
          int     21h
          cmp     al,0dh
          je      llr
          sub     al,'0'
          jb      llr
          cmp     al,'9'
          ja      llr
          xor     ah,ah
          shl     bx,1
          add     ax,bx
          shl     bx,1
          shl     bx,1
          add     bx,ax
          jmp     llp
  llr:    mov     dx,offset cseg:crlf
          mov     ah,9
          int     21h
          mov     ax,bx
  putval: xor     bx,bx
          push    bx
          mov     bx,10
  llg:    xor     dx,dx
          div     bx
          add     dx,'0'
          push    dx
          test    ax,ax
          jne     llg
  bloop:  pop     dx
          test    dx,dx
          je      endx
          mov     ah,6
          int     21h
          jmp     bloop
  endx:   ret
  cseg    ends
          end     start