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
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.
V. I. SOBEL’MAN