Данный проект включает в себя три основные части: компилятор языка ассемблера с упрощенным набором команд, дизасемблер и эмулятор процессора.
- Вам необходимо скачать код проекта в отдельную директорию.
- В Visual Studio открыть меню Файл > Создать > Проект из существующего кода.
- В открывшемся окне типом проекта выбираем Visual C++, нажимаем далее.
- Указываем расположение файла и <имя проекта>, нажимаем далее.
- В качестве типа проекта выбираем консаольное приложение, нажимаем готово.
- Переходим в свойства исполняемого проекта: Отладка > <Имя проекта>: свойства.
- Меняем опцию Общее>Версия пакета SDK для Windows на ту, которая установлена у вас.
Важно отметить, что для запуска проекта, также требуется библиотека freeglut. Картинки с последовательностью шагов могут улучшить понимание происходящего.
Еще не реализовано.
После сборки проекта у вас появится исполняемый файл, с которым можно работать через аргументы командной строки. Ниже перечислены флаги, задающие режим работы.
- -h
Выводит краткую справку по флагам, которые поддерживает программа. - -с
Вызывает компилятор, необходимо задать файл с исходным кодом через флаг -i. - -d
Вызывает дизасемблер, необходимо задать бинарный файл с програмой через флаг -i. - -r
Вызывает виртуальный процессор для исполнения вашей программы, необходимо задать бинарный файл с програмой через флаг -i. - -e
Последовательно вызвает компилятор, затем процессор. Скомпилированная программа запускается на выполнение. Необходимо задать файл с исходным кодом через флаг -i. - -i <имя файла>
Флаг указывает программе, какой файл будет считаться входным. Из него считываются данные для дальнейшей работы. - -o <имя файла>
Флаг указывает программе файл, в который будет записываться результат выполнения. - -l <имя файла>
Флаг позволяет указать имя файла лога, по умолчанию файл будет называться log.log - -n
Если данный флаг включен, то файл лога не создается, а вся отладочная информация выводиться на экран. - --memorySize=<число байт>
Данный флаг указывает размер виртуальной памяти процессора. - -s
Данный флаг устанавливает режим "STEP BY STEP" выполнения программы процессора, после каждой команды выводится полная информация о процессоре на экран. - -t
Флаг запускает тестирующие программы, которые расположены в папке Tests.
>ProgramManager.exe -с -i ASM_CODE.txt -o prog.bin
$./ProgramManager.out -с -i ASM_CODE.txt -o prog.bin
Выполнение команды произведет компиляцию программы из файла ASM_CODE.txt, результат будет записан в prog.bin. Все ошибки будут записаны в log.log
>ProgramManager.exe -d -i prog.bin -o disasm.txt
$./ProgramManager.out -d -i prog.bin -o disasm.txt
Выполнение команды произведет дизассемблирование программы из prog.bin, результат будет записан в disasm.txt. Все ошибки будут записаны в log.log
>ProgramManager.exe -r -i prog.bin --memorySize=1024 -s
$./ProgramManager.out -r -i prog.bin --memorySize=1024 -s
Выполнение команды запустит эмуляцию программы из prog.bin на виртуальном процессоре, в режиме STEP BY STEP, выделив под виртуальную память 1024 байта. Результат выполения эмуляции будет выведен в log.log
>ProgramManager.exe -e -i ASM_CODE.txt --memorySize=1024 -s -o temp.bin
$./ProgramManager.out -e -i ASM_CODE.txt --memorySize=1024 -s -o temp.bin
Выполнение команды запустит компиляцию программы, описанной в ASM_CODE.txt, результат компиляции будет записан в temp.bin. Затем будет запущена эмуляцию программы из temp.bin на виртуальном процессоре, в режиме STEP BY STEP, выделив под виртуальную память 1024 байта. Результат выполения эмуляции будет выведен в log.log