Я хотел бы написать функциональный симулятор для архитектуры risc-v.Проведя некоторые исследования, я обнаружил, что есть некоторые симуляторы risc-v с открытым исходным кодом, которые утверждают, что могут работать с newlibc.
Я думаю, это означает, что симулятор может правильно обрабатывать программу c, используя стандартную библиотеку c (реализация newlibc).
Мой мозг застрял в этой точке.Поскольку для обработки newlibc симулятор читает только инструкции по сборке (отображение в двоичный файл), означает ли это, что симулятор может обрабатывать все инструкции по сборке, компилируемые из newlibc?
Если я пытаюсь реализовать свой собственныйsimulator, как я могу узнать, какие инструкции по сборке мне нужно включить?
Кроме того, я хочу, чтобы мой simualtor мог обрабатывать системные вызовы ex, printf () -> write (), которые были бы действительнополезно.
Но как мне запустить программу, скомпилированную для riscv, и вызвать системный вызов write () хоста x86 machine для вывода информации на экран?