Мне нужно реализовать эту функцию перевода инструкций, но я вообще не знаю, как с ней справиться, это для десятичной машC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Мне нужно реализовать эту функцию перевода инструкций, но я вообще не знаю, как с ней справиться, это для десятичной маш

Сообщение Anonymous »

это функция

Код: Выделить всё

std::string Instruction::TranslateToMachineCode() {
// Implement the translation logic here
// This function should return the machine code corresponding to the instruction
// For example, if the instruction is "LOAD", the machine code might be "0001"
// You need to define the translation rules for each instruction
// and implement them accordingly
}
Язык ассемблера VC8000
Ниже приводится краткое описание языка ассемблера для VC8000. В классе мы обсудим обоснование сделанного здесь выбора.
Формат оператора:
Оператор на языке ассемблера состоит из от одного до четырех полей. Это:
  • Ярлык — используется для ссылки на оператор. Это необязательно.
  • Код операции — символическое имя для числового кода операции машинного языка.
  • Операнд1 — это номер регистра для машины. языковой эквивалент или константа для инструкции ассемблеру. (См. далее в этом документе)
  • Операнд2 — используется как метка (адрес) или регистр. Для инструкций, которые передают информацию ассемблеру, это не будет использоваться.
    Метки начинаются со столбца 1, все остальные поля отделяются пробелами и/или табуляцией и/или запятыми. Метка будет использоваться вместо числового адреса для указания местоположения инструкции или памяти.
Коды символических операций:
Это имя для кода операции различного машинного языка.

Код: Выделить всё

01 ADD        02 SUB     03 MULT    04 DIV        05 LOAD
06 STORE   07 ADDR  08 SUBR    09 MULTR 10  DIVR
11 READ     12 WRITE  13 B           14 BM         15 BZ
16 BP           17 HALT
Символы: (то есть метки и операнды) имеют длину от 1 до 10 символов, первый из которых — буква, а остальные могут быть буквами и цифрами.
Адреса:
Адрес должен быть указан меткой. Числовые адреса не допускаются.
Инструкции на языке ассемблера:

[*]DC — определение константы. Константа представляет собой десятичное целое число, помещаемое в поле операнда.
[*]DS — определяет хранилище. Операнд определяет количество слов памяти, которые будут выделены.
[*]ORG – определяет происхождение. Операнд указывает адрес, по которому будет сгенерирована трансляция следующей инструкции,
[*]END – указывает, что дополнительных операторов для трансляции нет.

Комментарии:
Данные после ";" это комментарий. Комментарии могут появляться где угодно внутри инструкции или сами по себе. Пустые строки игнорируются.
Учет регистра
Все символы будут чувствительны к регистру. Коды операций могут быть записаны в верхнем или нижнем регистре или в некоторой их комбинации. Поэтому они нечувствительны к регистру.
Компьютер VC8000
VC8000 — это десятичный компьютер с памятью на 1 000 000 слов. Каждое слово состоит из 9 десятичных цифр. Есть дополнительные 10 слов памяти, называемые регистрами. Это встроенная память. Инструкции машинного языка для VC8000 имеют следующую форму. Примечание: каждая из них имеет одинаковое количество цифр.
|2 цифры | 1 цифра |6 цифр |

|код операции | номер регистра |часть адреса|
или
|2 цифры | 1 цифра | 1 цифра | 5 цифр |

|код операции | номер регистрации |номер регистрации| не используется |
Программа на машинном языке — это последовательность инструкций машинного языка, хранящаяся в памяти. Компьютер запускает программу на машинном языке, выполняя машинные инструкции, хранящиеся в последовательных словах памяти. Машина VC8000 предполагает, что первая выполняемая инструкция будет находиться в позиции 100. Ниже приведены инструкции машинного языка для VC8000.

Код: Выделить всё

NAME           OP. CODE     MEANING

ADD                     01           Reg 
[code]SUBTRACT         02            Reg 

Подробнее здесь: [url]https://stackoverflow.com/questions/78496562/i-need-to-inplement-this-instruction-translation-fuction-but-i-dont-know-how-to[/url]
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»