You need to enable JavaScript to run this app. MIPS架构下实现通用嵌套for循环,现有栈实现方案运行异常
优惠活动
大模型
产品
解决方案
定价
更多

MIPS架构下实现通用嵌套for循环,现有栈实现方案运行异常

MIPS通用可复用for循环实现异常

开发背景

近期尝试在MIPS架构下编写可复用的通用for循环逻辑,但现有实现始终无法正常运行。最初计划依托对栈机制的理解完成循环控制,但当前实现逻辑存在明显错误,最终要实现的功能对应如下C语言代码:

for(i=0; i<10; i++){
   for(j = i; j<10; j++){
      acc = acc + a[j];
   }
}

当前用于实现通用for功能的异常代码

for:    
    addi    $sp, $sp, -4
    sw      $a1, ($sp)
    addi    $sp, $sp, -4
    sw      $a2, ($sp)
    addi    $t0, $a2, 0 
    la      $s7, ($ra)      
    jr      $s7

counter:
    addi    $t0, $t0, 1     
    jr      $s7     

increment:
    blt     $t0, $a1, counter   
    addi    $sp, $sp, 4
    addi    $sp, $sp, 4
    jr      $ra

预期调用逻辑

# for(i=0; i<10; i++)
    addi    $a1, $zero, 9
    la      $a2, ($s0)
    addi    $t3, $zero, 0
    sw      $t3, ($s0)
    jal     for 

        sw      $a2, ($s0)
        # for(j = i; j<10; j++)
        addi    $a1, $zero, 9 
        la      $a2, ($s1)
        lw      $t2, ($s0)
        addi    $a2, $t2, 0
        jal     for
            # acc = acc + a[j]
            la      $s3, vector         
            add     $t4, $zero, $t1 
            jal     set_address 
            lw      $t4, ($s3)      
            add     $t3, $t3, $t4   
    
        # j++
        jal     increment
        
        lw      $a2, ($sp)
        addi    $sp, $sp, 4
        lw      $a1, ($sp)
    
    # i++
    jal     increment

备注

  • 原代码附带的非英文注释已全部移除,避免内容混淆
  • 清楚当前实现未遵循编程规范,此前未系统学习过相关要求
  • 若该方案无法调试通过,将采用其他方式完成需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.11 05:45:03