以mips为单位的数组长度

时间:2011-01-02 19:49:15

标签: arrays mips

如何以mips为单位查找数组的长度,spim?

1 个答案:

答案 0 :(得分:4)

我写这个是为了练习。我测试了它,效果很好。你可能已经想到了这一点,但如果没有,那就是它。

.data
array1: .word   1,2,3,4,5,6,7,8,9

.text
main:
        la  $a0,array1
        jal lenArray

        move    $a0,$v0
        syscall $print_int

exit:
        li  $a0,10
        syscall 


lenArray:       #Fn returns the number of elements in an array
        addi    $sp,$sp,-8
        sw  $ra,0($sp)
        sw  $a0,4($sp)
        li  $t1,0

laWhile:
        lw  $t2,0($a0)
        beq $t2,$0,endLaWh
        addi    $t1,$t1,1
        addi    $a0,$a0,4
        j   laWhile

endLaWh:    
        move    $v0,$t1
        lw  $ra,0($sp)
        lw  $a0,4($sp)
        addi    $sp,$sp,8
        jr  $ra