Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.05.2009, 18:46   #1
Hellgrom
Новичок
Джуниор
 
Регистрация: 02.05.2009
Сообщений: 2
По умолчанию интерпретатор машинного языка

требуется разработать интерпретатор машинного языка специализированного
компьютера, имеющего 8-ми разрядный сумматор @ и регистры с именами
от A до Z. Язык содержит следующие команды, выполняемые поразрядно:

Команда Означает
A? Ввести с клавиатуры двоичное число в регистр A
A! Вывести на дисплей двоичное число из регистра A
A= Переслать в регистр A значение из сумматора
|A Установить в 1 разряды сумматора
соответствующие единичным разрядам регистра A
^A Инвертировать разряды сумматора
соответствующие единичным разрядам регистра A
~A Инвертировать разряды сумматора
соответствующие нулевым разрядам регистра A

Интерпретируемая программа хранится в текстовом файле IN. Пробе-
лы, символы табуляции и конца строки в записи команд используются сво-
бодно. Большие и маленькие буквы считаются эквивалентными. Начальные
значения регистров и сумматора считаются неопределенными.

Пример файла IN

----------------------------------------------------------------------
x? z= ^z |x z= z!
----------------------------------------------------------------------

Результаты работы программы должны отображаться на дисплее. Ниже
приведен протокол работы программы из файла IN. Здесь двоичное число
10 вводится с клавиатуры.

----------------------------------------------------------------------
Вариант 99.02. Шифр 000.
Интерпретатор программы.
X=10
Z=00000010
----------------------------------------------------------------------

Результаты интерпретации команд должны выводиться в файл OUT в
соответствии со следующим образцом.

----------------------------------------------------------------------
X? X=00000010
Z= Z=00001000
^Z @=00000000
|X @=00000010
Z= Z=00000010
Z! Z=00000010


сам смог надумать только вот это
Program lab3;
uses CRT;
Var
a:longint;
st,w:string;
f:text;
i:integer;
function ToBin ( x:longint):string;
const
dig:array [0..1] of char=('0','1');
var
rez:string; d:0..1;
begin
rez:='';
While (x<>0) do
begin
d:=x mod 2;
rez:=dig[d]+rez;
x:=x div 2;
end;
ToBin:=rez;
end;
Begin
clrscr;
assign (f,'IN.txt');
{$I-}
reset(f);
{$I+}
if IOresult <> 0 then
begin
Writeln('нет файла*');
end;
readln(f,st);
i:=1;
While i<=length(st) do
begin
While (st[i] in [' ', ',', '.', ';' , '[', ']']) and (i<=length(st)) do
inc(i);
w:='';
While not (st[i] in [' ', ',', '.', ';' , '[', ']']) and (i<=length(st)) do
begin
w:=w+st[i];
inc(i);
end;
end;

Begin
clrscr;
writeln ('введите десятичное число a=');
readln(a);
writeln(ToBin(a));
readln
end;
end.
Hellgrom вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Интерпретатор Паскаля SvetickPro Помощь студентам 1 17.10.2008 22:00
командный интерпретатор <Dusha> Общие вопросы C/C++ 4 16.08.2008 18:27
Чтение машинного кода AndruXa Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 4 24.06.2008 19:01
построить схему машинного алгоритма и составить Паскаль-программу решения задачи RASTOMAN Паскаль, Turbo Pascal, PascalABC.NET 3 18.12.2007 22:21
интерпретатор команд стековой машины AntohaN Помощь студентам 2 05.09.2007 20:04