Venus
RISC-V生态系统Venus 是加州大学伯克利分校的 RV32IM 汇编教学模拟器,供 CS 61C 使用。
概述
Venus 是一个在 Web 浏览器中运行的 RISC-V 模拟器。模拟器是一种模仿处理器的程序,因此你无需拥有 RISC-V 硬件就能运行机器码。Venus 读取为 RV32IM 编写的汇编代码。汇编代码是机器指令的可读文本形式。RV32I 是基本的 32 位 RISC-V 指令集,而 M 扩展增加了乘法和除法。
编辑器和模拟器共享同一个页面。程序通过 ecall 请求服务,ecall 是向环境请求某些东西的 RISC-V 指令。Venus 处理用于打印值和分配更多内存的 ecall。
历史
Keyhan Vakil 于 2017 年在 UC Berkeley 启动了 Venus。该项目用 Kotlin 编写,Kotlin 是一种可以编译为 JavaScript 的编程语言。正是这种编译让模拟器无需安装任何东西就能在浏览器中运行。
UC Berkeley 将 Venus 用于 CS 61C,这是其关于机器结构的课程,学生在其中编写他们的第一个 RISC-V 程序。该课程后来在 venus.cs61c.org 保留了自己的分支。分支是项目的副本,与原项目分开开发。另一个分支 Venus164 为 Berkeley 编译器课程中的 ChocoPy 编译器项目添加了功能。
使用位置
Venus 适合作为汇编语言入门课程。学生打开页面,粘贴程序并运行它。它的指令集保持在 RV32IM,这是一个小型的指令集,能让最初的课程专注于寄存器、内存和控制流。
