Arrays 这个MIPS数组是什么+;你在干什么?

Arrays 这个MIPS数组是什么+;你在干什么?,arrays,loops,assembly,mips,mips32,Arrays,Loops,Assembly,Mips,Mips32,我是MIPS新手,能够准确理解代码中的内容,但我不理解提供的答案/解决方案。任何帮助都将不胜感激 请阅读下面的代码,并在funct返回后在数组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 sy

我是MIPS新手,能够准确理解代码中的内容,但我不理解提供的答案/解决方案。任何帮助都将不胜感激

  • 请阅读下面的代码,并在funct返回后在数组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
    

  • 解决方案:查找最小差异

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

    中的差异,以便将文本格式化为代码,将其缩进4个空格,并确保前面和后面都有空行。供日后参考。:)