|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
02.05.2009, 18:46 | #1 |
Новичок
Джуниор
Регистрация: 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. |
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Интерпретатор Паскаля | 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 |