RISC-V 汇编模拟器
RISC-V assembly simulator
我正在尝试学习 RISC-V ISA。有没有办法像在 MIPS ISA 的 MARS 中一样模拟 RISC-V 汇编代码?
听起来您正在寻找具有集成前端的 instruction-level RISC-V 模拟器,允许您交互式编辑机器代码以及查看和操作 CPU状态。我不知道 RISC-V 的任何工具都像 MARS 一样紧密集成,但您可以通过组合一些现有的 RISC-V 工具来实现近似,即:
- 一个 ISA 模拟器 (Spike or QEMU)
- 带有汇编器和编译器的 RISC-V 工具链 (RISC-V GNU toolchain)
- 调试器(gdb,包含在上述工具链中)
- 调试器前端(gdb tui 模式,DDD, gdbgui, or others)
我有幸使用 QEMU + gdb 或 gdbgui 如下:
$ qemu-system-riscv32 -S -s -kernel /path/to/myprog.elf -nographic
然后在另一个控制台中:
$ riscv64-unknown-elf-gdb /path/to/myprog.elf
(gdb) target remote localhost:1234
or
$ gdbgui -r -n -g /path/to/riscv64-unknown-elf-gdb /path/to/myprog.elf
注意:我注意到在 riscv 工具链下构建的 gdb 默认不包含对 tui 模式的支持。
注意 2:QEMU 实际上不仅仅是一个 ISA 模拟器——它模拟各种特定的 RISC-V 目标板及其附属外围设备。
如果你想要一个更高级别的图形界面工具,
你可以看看我的大学用来教授 riscv 的小工具。
它带有一个内置的汇编器和模拟器,它显示所有寄存器的内容、内存和每个周期的最小 riscv 管道的状态。
不幸的是,该项目已经很老了,github-repo 并不是真正最新的,但它仍然是开始使用 riscv 的一种便捷方式。
虽然使用 Spike 和 RISC-V GNU 工具链确实有效,但它远非学习 ISA 的理想选择。
我实际上花了一个夏天为 RISC-V 移植 MARS,因为没有适合初学者使用的好选择。 RARS 应该正是您要找的。
出于各种原因,一些内容已从 MARS 中删除,但我会密切关注回购协议,因此如果缺少改进,请提出问题。
Ripes:图形化的 5 级 RISC-V 流水线模拟器和汇编编辑器
rv8:用于 x86-64 的 RISC-V 模拟器
risc-v-simulator:RISC-V assembler/simulator 带 GUI
RiscVAssemblerSuite:RISC V 汇编器、反汇编器和仿真环境
TinyEMU : TinyEMU 是 RISC-V 和 x86 架构的系统模拟器
我使用 QEMU 进行仿真和秒杀,这是一个很好的链来测试几乎所有情况。 QEMU 也可以 运行 Debian.
这是我们的计算机组织 class BRISC-V Simulator
引入的一个很棒的 RISC-V 模拟器
我正在尝试学习 RISC-V ISA。有没有办法像在 MIPS ISA 的 MARS 中一样模拟 RISC-V 汇编代码?
听起来您正在寻找具有集成前端的 instruction-level RISC-V 模拟器,允许您交互式编辑机器代码以及查看和操作 CPU状态。我不知道 RISC-V 的任何工具都像 MARS 一样紧密集成,但您可以通过组合一些现有的 RISC-V 工具来实现近似,即:
- 一个 ISA 模拟器 (Spike or QEMU)
- 带有汇编器和编译器的 RISC-V 工具链 (RISC-V GNU toolchain)
- 调试器(gdb,包含在上述工具链中)
- 调试器前端(gdb tui 模式,DDD, gdbgui, or others)
我有幸使用 QEMU + gdb 或 gdbgui 如下:
$ qemu-system-riscv32 -S -s -kernel /path/to/myprog.elf -nographic
然后在另一个控制台中:
$ riscv64-unknown-elf-gdb /path/to/myprog.elf
(gdb) target remote localhost:1234
or
$ gdbgui -r -n -g /path/to/riscv64-unknown-elf-gdb /path/to/myprog.elf
注意:我注意到在 riscv 工具链下构建的 gdb 默认不包含对 tui 模式的支持。
注意 2:QEMU 实际上不仅仅是一个 ISA 模拟器——它模拟各种特定的 RISC-V 目标板及其附属外围设备。
如果你想要一个更高级别的图形界面工具, 你可以看看我的大学用来教授 riscv 的小工具。 它带有一个内置的汇编器和模拟器,它显示所有寄存器的内容、内存和每个周期的最小 riscv 管道的状态。
不幸的是,该项目已经很老了,github-repo 并不是真正最新的,但它仍然是开始使用 riscv 的一种便捷方式。
虽然使用 Spike 和 RISC-V GNU 工具链确实有效,但它远非学习 ISA 的理想选择。
我实际上花了一个夏天为 RISC-V 移植 MARS,因为没有适合初学者使用的好选择。 RARS 应该正是您要找的。
出于各种原因,一些内容已从 MARS 中删除,但我会密切关注回购协议,因此如果缺少改进,请提出问题。
Ripes:图形化的 5 级 RISC-V 流水线模拟器和汇编编辑器
rv8:用于 x86-64 的 RISC-V 模拟器
risc-v-simulator:RISC-V assembler/simulator 带 GUI
RiscVAssemblerSuite:RISC V 汇编器、反汇编器和仿真环境
TinyEMU : TinyEMU 是 RISC-V 和 x86 架构的系统模拟器
我使用 QEMU 进行仿真和秒杀,这是一个很好的链来测试几乎所有情况。 QEMU 也可以 运行 Debian.
这是我们的计算机组织 class BRISC-V Simulator
引入的一个很棒的 RISC-V 模拟器