2012-10-17 28 views
0

MIPS是新手,可以準確理解代碼正在發生什麼,但我不明白所提供的答案/解決方案。任何幫助將不勝感激。這是什麼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 
    

SOLUTION:查找最小差值

+0

爲了將文本格式化爲代碼,請將其縮進4個空格,並確保其前後有空行。備查。 :) – cHao

回答

0

它從最接近在$a1傳入的編號的數組發現的元素。換句話說,它找出最小的元素x。它返回$v0中的索引以及$v1中的差異。