Ripes中RISCV系统调用报错:a7寄存器值始终为0的咨询
问题解决思路
首先,你用错了系统调用号:a7=1是输出整数的调用(需要提前把要输出的数存在a0里),但你要做的是读取输入,正确的读取整数调用号是a7=5,调用后输入的数值会存在a0寄存器中。
另外,不管你设什么a7都报错说它是0,核心原因是Ripes默认没开启控制台交互:
- 点击顶部的「Config」按钮
- 在配置窗口里找到「Console」选项,勾选「Enable Console」
- 把「Console Mode」改成「Interactive」
- 重新运行程序
给你一个能正常读取并验证输入的示例代码:
.text main: li a7, 5 # 系统调用号:读取整数 ecall # 触发调用,输入的数会存在a0里 li a7, 1 # 切换到输出整数的调用 ecall # 把刚才输入的数值输出到控制台
内容的提问来源于stack exchange,提问作者Iamawatermelon
相关产品推荐
相关产品推荐

