首页 > 解决方案 > 阵列平均 MIPS

问题描述

我如何计算前 4 位 1、2、3、4 的平均值和后 4 位 2、3、4、5 的平均值,依此类推,直到 6、7、8、9。我还想在控制台中显示结果。

array:  .word 1, 2, 3, 4, 5, 6, 7, 8, 9 
length: .word 4
sum:    .word 0
average:    .word 0
element_prompt: .asciiz "average: "
.text 
.globl main
.ent main

main:

    la $t0, array   #base address
    li $t1, 0       # i = 0
    lw $t2, length  #$t2 = length
    li $t3, 0       #sum = 0
    sumLoop:
        lw $t4, ($t0)   #$t4 = array[i]
        add $t3, $t3, $t4   #sum = sum + array[i]

        add $t1, $t1, 1 # i = i + 1
        add $t0, $t0, 4 # Upadting array address
        blt $t1, $t2, sumLoop   # if i < len, then loop again.
        sw $t3, sum


        # Calculate the average.
        div $t5, $t3, $t2   #ave = sum/length
        sw $t5, average

        #Display sum


    lw $a0, average
    addi $v0,$0, 1
    syscall
exit:
        li $v0, 10
    syscall

标签: assemblymipsaveragemoving-average

解决方案


推荐阅读