Skip to content

Saegito/conf4

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 

Repository files navigation

conf4

Задание №4 Разработать ассемблер и интерпретатор для учебной виртуальной машины (УВМ). Система команд УВМ представлена далее. Для ассемблера необходимо разработать читаемое представление команд УВМ. Ассемблер принимает на вход файл с текстом исходной программы, путь к которой задается из командной строки. Результатом работы ассемблера является бинарный файл в виде последовательности байт, путь к которому задается из командной строки. Дополнительный ключ командной строки задает путь к файлу логу, в котором хранятся ассемблированные инструкции в духе списков “ключ=значение”, как в приведенных далее тестах. Интерпретатор принимает на вход бинарный файл, выполняет команды УВМ и сохраняет в файле-результате значения из диапазона памяти УВМ. Диапазон также указывается из командной строки. Форматом для файла-лога и файла-результата является json. Необходимо реализовать приведенные тесты для всех команд, а также написать и отладить тестовую программу. Загрузка константы A Биты 0—7 B Биты 8—29 66 Константа Размер команды: 4 байт. Операнд: поле B. Результат: регистр-аккумулятор. 116 Тест (A=66, B=986): 0x42, 0xDA, 0x03, 0x00 Чтение значения из памяти A Биты 0—7 B Биты 8—18 165 Смещение Размер команды: 4 байт. Операнд: значение в памяти по адресу, которым является сумма адреса (регистр-аккумулятор) и смещения (поле B). Результат: регистр-аккумулятор. Тест (A=165, B=540): 0xA5, 0x1C, 0x02, 0x00 Запись значения в память A Биты 0—7 B Биты 8—30 187 Адрес Размер команды: 4 байт. Операнд: регистр-аккумулятор. Результат: значение в памяти по адресу, которым является поле B. Тест (A=187, B=445): 0xBB, 0xBD, 0x01, 0x00 Бинарная операция: pow() A Биты 0—7 B Биты 8—30 47 Адрес Размер команды: 4 байт. Первый операнд: регистр-аккумулятор. Второй операнд: значение в памяти по адресу, которым является поле B. Результат: регистр-аккумулятор. Тест (A=47, B=305): 117 0x2F, 0x31, 0x01, 0x00 Тестовая программа Выполнить поэлементно операцию pow() над вектором длины 4 и числом 5. Результат записать в новый вектор.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages