0

MIPSは初めてで、コードで何が起こっているのかを正確に理解できますが、提供された回答/解決策を理解していません。どんな助けでも大歓迎です。

  1. 次のコードを読み、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
    

解決策:最小の違いを見つける

4

1 に答える 1

0

で渡された数値に最も近い配列から要素を見つけ$a1ます。xつまり、差が最も小さい要素を見つけますabs(x - $a1)。のインデックス$v0と の差を返します$v1

于 2012-10-18T18:52:54.953 に答える