Разработка процессора для арифметических операций над вещественными числами.
Система команд - арифметические операции над содержимым регистров, ввод и вывод значений регистров, считывание содержимого регистра в выделенный регистр (сумматор) и запись в регистр содержимого сумматора. Длина команды - 1 байт, команда включает в себя код операции (4 бита), в котором содержится один из операндов. Второй операнд берется из сумматора. РРезультат записывается в сумматор.
Дать описание системы команд и программу для вычисления значений квадратного трехчлена.
Я сделал следующую программу. Поправьте, пожалуйста ее, что бы она выполнялась...
program PM40_4;
uses crt;
procedure Autor;
begin
clrscr;
writeln;
writeln('');
writeln('zadanie variant 17');
end;
var ch:char; f:text; name:string;
Reg:array[0..15]of real;
c:byte; sum:real; com:string;
function CharToNumber(ch:char):byte;
begin
if ord(ch)<ord('A')
then CharToNumber:=ord(ch)-ord('0')
else CharToNumber:=ord(ch)-ord('A')+10;
end;
function HexToDec(a:string):longint;
var b:longint; i:byte;
begin
b:=0;
for i:=1 to length(a) do
b:=b*16+CharToNumber(a[i]);
HexToDec:=b;
end;
begin
{Autor;}
repeat
write(' write zapros');
readln(name); assign(f,name); reset(f);
while not Eof(f) do
begin
readln(f,com);
c:=HexToDec(com);
case c div 16 of
0:readln(Reg[c mod 16]);
1:writeln(Reg[c mod 16]:7:3);
2:sum:=Reg[c mod 16];
3:Reg[c mod 16]:=sum;
4:sum:=sum+Reg[c mod 16];
5:sum:=sum-Reg[c mod 16];
6:sum:=sum*Reg[c mod 16];
7:sum:=sum/Reg[c mod 16];
else writeln('ERROR!');
end;
end;
writeln('Continue? (Y/N) '); ch:=readkey;
until UpCase(ch)<>'Y';
end.
М | В тегах лучше, правда? мисс_граффити |
Сообщение отредактировано: мисс_граффити -