ebreak

ebreak

RISC-V 汇编 参考

lyszt.net 更详细地介绍了 ebreak 和其他 RISC-V 指令。

描述

ebreak 会停止程序。这个名字是 environment break 的缩写。它标记了调试器取得控制权的点,而此模拟器会在该行暂停执行。该形式不接受操作数。

ebreak

处理器在此处停止,其后的行不会运行。寄存器和内存保留其值,因此之后可以检查断点处的状态。使用服务 10 的 ecall 会正常结束程序,而 ebreak 会在选定的位置停止程序。

RISC-V 手册将 ebreak 描述为将控制权交还给调试环境,并将其与向环境请求服务的 ecall 一起定义。两者都会引发精确的请求陷阱,即有意将控制权转移给环境。

示例将 t0 设为 1 并运行 ebreak。其后的 li 永远不会运行,因此 t0 保持为 1。

示例

li t0, 1
ebreak   # the program stops here
li t0, 2   # never reached