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

MIPS基于R[i+j] += P[i] * Q[j]实现多项式乘法结果异常修复

问题原因排查

你遇到的问题确实是数值累加逻辑的编写错误,核心错误有两处:

  • 累加计算的顺序完全颠倒,你先将新的乘积直接覆盖写入R数组对应位置,才执行累加操作,之前存储的旧累加值直接被覆盖丢失
  • 累加后的结果没有回写到R数组,累加计算完全没有生效
错误代码段定位

你现有inner循环中的这三行存在逻辑错误:

lw $t8, R($t7)
sw $t6, R($t7)          #store $t6 on R[$t7]
add $t8, $t8, $t6
修复方案

将上述三行替换为以下逻辑即可:

lw $t8, R($t7)          # 先读取R[i+j]当前已有的累加值
add $t8, $t8, $t6       # 累加本次计算的乘积P[i]*Q[j]
sw $t8, R($t7)          # 将累加后的新值写回R[i+j]位置
验证说明

修复后计算逻辑完全符合R[i+j] += P[i] * Q[j]的要求,可得到你预期的输出:

  • R[2] 正确累加得 2*3 + 3*(-1) + 4*3 = 15
  • R[3] 正确累加得 3*3 + 4*(-1) + (-5)*3 = -10
    其余位置的数值因为不需要多次累加,原逻辑下结果本身正确,修复后也不会发生变化。

注:你代码中outer、inner循环的注释内容和实际判断条件不符、la $s0, R加载的R地址未使用,属于不影响运行的冗余问题,可根据需要自行调整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 16:15:03