【问题标题】:What is this MIPS array + loop doing?这个 MIPS 数组 + 循环在做什么?
【发布时间】:2012-10-17 23:22:24
【问题描述】:

MIPS 新手,可以准确理解代码的运行情况,但我不理解所提供的答案/解决方案。任何帮助将不胜感激。

  1. 请阅读下面的代码,在函数返回后记下数组A中的内容。

        .data
    A:  .word 21,3,2,9,100,22,6,15,33,90
    
        .text
        .globl main
    main:
        la $a0, A
        li $a1, 17
        li $a2, 10
        jal funct
    
        li $v0, 10      # exit
        syscall
    
    funct:
        li $t0, 0
        li $v1, 1000000
    funct_L0:   
        sll $t1, $t0, 2
        add $t1, $t1, $a0
        lw $t1, 0($t1)  
        sub $t2, $t1, $a1
        bgt $t2, $0, funct_L1
        sub $t2, $0, $t2
    funct_L1:
        bgt $t2, $v1, funct_L2
        ori $v0, $t0, 0
        ori $v1, $t2, 0
    funct_L2:
        addi $t0, $t0, 1
        blt $t0, $a2, funct_L0
        jr $ra
    

解决方案:找到最小的差异

【问题讨论】:

  • 为了将文本格式化为代码,将其缩进 4 个空格并确保其前后各有空行。备查。 :)

标签: arrays loops assembly mips mips32


【解决方案1】:

它从数组中找到最接近$a1 中传入的数字的元素。换句话说,它找到x 的差异abs(x - $a1) 最小的元素。它返回$v0 中的索引和$v1 中的差异。

【讨论】:

    猜你喜欢
    • 2018-05-26
    • 2023-01-13
    • 2018-08-12
    • 1970-01-01
    • 1970-01-01
    • 2011-07-18
    • 1970-01-01
    相关资源
    最近更新 更多