You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Cornell平台中RISC-V解释器代码异常:处理下一个整数时持续运行

RISC-V汇编代码循环错误分析

核心问题

  • 循环跳转标签错误:在fast_multiply2函数的skip2标签之后,BNE a7, zero, next_digit指令的目标标签写错了,应当跳转到当前函数的循环入口next_digit2,实际却指向了第一个乘法函数的next_digit标签。

错误导致的执行流程

当程序处理第二个乘法逻辑(计算5×5)时:

  1. 第一次循环处理完a7的最低位后,a7经右移变为2(非零),触发该错误的跳转指令。
  2. 跳转到第一个函数的next_digit标签后,由于a6已经被第一个函数处理为0,该段的循环会直接退出。
  3. 程序随后会顺序执行到第二个函数的初始化代码(addi t1, zero, 5、addi a7, zero, 5),重新进入fast_multiply2函数,形成无限循环,导致程序持续运行无法终止。

修复方法

将fast_multiply2中的这条错误指令修改为:

BNE  a7, zero, next_digit2

内容的提问来源于stack exchange,提问作者Andy McDonough

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 14:12:49