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 2340-2350 with 4567-4577 (where A and B happen to be located). The physical binary format of the machine instruction is specific to the computer it's running in.
They Can Be Quite Different
Assembly languages are quite different between computers as is evident in the example below, which takes 16 lines of code for the mini and 82 lines for the micro. The example changes Fahrenheit to Celsius.
HP 3000
begin
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);
end
PC (Intel x86)
cseg segment para public 'CODE'
assume cs:cseg,ds:cseg
start:
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
sloop:
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
getnumb:
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
ret
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
Computer Desktop Encyclopedia THIS DEFINITION IS FOR PERSONAL USE ONLY
All other reproduction is strictly prohibited without permission from the publisher.
Copyright © 1981-2009 by Computer Language Company Inc. All rights reserved.
Browse dictionary definitions near assembly language
Share on Facebook