Step back instead of restarting
Went one step too far? Step back undoes the last instructions, registers, memory and output included, so you can look again without running from the start.
使用带有标签和伪指令的 RV32IM 汇编,然后全速运行或逐条指令执行。
设置断点,后退,并在程序运行时观察寄存器、内存、机器代码和控制台。
RISC-V 模拟器是一个在线编程环境:写代码、运行、看输出,不需要配置本地环境。 在浏览器中编写 RISC-V 汇编并运行:单步执行、后退、断点、寄存器、内存、控制台输入输出、十六进制机器码。
在编辑器中输入或粘贴代码,支持语法高亮与自动缩进。
选择语言版本、命令行参数或输入数据,按需调整。
点击运行按钮,控制台会显示输出结果与错误信息。
确认结果后复制代码,或分享链接把示例发给别人。
Went one step too far? Step back undoes the last instructions, registers, memory and output included, so you can look again without running from the start.
call overwrites ra. A function that calls another must save ra on the stack first and restore it before ret, as in the factorial example.
The machine code tab counts how often each instruction ran. A loop body that ran once too often or never ran points straight at a wrong branch.
无需注册即可试用,游客每日 3 次免费。所有处理都在你的设备上完成,文件不会被上传。
所有工具每天都有免费额度。 游客每日 3 次免费,注册再送 20 积分。文件不上传,处理全在你的设备上完成。
是的。这个在线RISC-V模拟器是免费的,不需要账户,没有运行次数限制,也无需安装任何东西。
32位基础整数集(RV32I)、用于乘法、除法和取余的M扩展,以及对周期、时间和instret计数器的读取——这是计算机体系结构和汇编课程中教授的核心指令集。
大多数会的。代码从 0x00400000 开始,数据从 0x10010000 开始,系统调用使用与常见教学模拟器相同的编号(a7 = 1 打印整数,4 打印字符串,5 读取整数,10 退出等等)。参考标签列出了它们所有。
将系统调用号放入 a7,将参数放入 a0,然后运行 ecall。当程序读取时,控制台会要求输入:输入内容并按回车。你也可以在程序要求之前提前输入。
指令计数是精确的。循环计数是针对简单顺序核心的估计:每条指令1个周期,每次加载2个周期,每次跳转或分支采取3个周期,每次乘法3个周期,每次除法33个周期。
是的。机器码标签显示每条指令的地址、十六进制数和解码形式。可以将其复制为十六进制,每行一个字,或者下载 .hex 或原始 .bin 文件。
字必须在 4 的倍数地址上读取和写入,半字必须在 2 的倍数地址上。将 .align 2 放在字数据之前,或检查你计算的地址。错误会显示地址和所在行。
是的。回退可以撤销最多最近的 4,096 条指令,包括寄存器、内存和输出,因此您可以在不从头开始运行的情况下找到错误。
No. Assembling and running happen in your browser, and your program is saved in this browser's storage so it is still here next time.
免费、私密,随时可用。