Перед вами очень простой эмулятор RISC-V. Он пока не предназначен (пока что) для использования в production, однако вам может быть интересно взглянуть на его исходный код! Это полностью образовательный проект, поэтому при разработке не использовался ИИ.
Передайте эмулятору 64-битный исполняемый файл в ELF формате, и он попытается его обработать. Используйте опцию -n, чтобы указать имя ELF файла. Используйте опцию -d, чтобы запустить эмулятор в режиме отладки. Пока доступны только две команды: step N и reg xN/reg pc, но в будущем я добавлю больше!
Просто используйте clang или gcc. Также вы можете воспользоваться прилагаемым скриптом для сборки эмулятора. Но будьте внимательны: используйте только компиляторы, поддерживающие тип __int128_t! (всякие MinGW и Visual Studio скорее всего не подойдут)
Лично я использую скрипт compileasm.sh. Он использует clang для компиляции ассемблерного кода RISC-V RV64M в исполняемый файл ELF. Но вы всегда можете использовать другой инструмент, если хотите!
На данный момент эмулятор понимает все инструкции RV64M, кроме инструкций, отвечающих за многопоточность и взаимодействие между harts.