Assembly 阵列平均MIPS

Assembly 阵列平均MIPS,assembly,mips,average,moving-average,Assembly,Mips,Average,Moving Average,如何计算前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

如何计算前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
数组:。字1、2、3、4、5、6、7、8、9
长度:。字4
总和:。字0
平均值:。字0
元素提示:.asciiz“平均值:”
.文本
格洛博梅因酒店
新界北总区
主要内容:
la$t0,数组#基址
li$t1,0#i=0
lw$t2,长度#$t2=长度
李$t3,0#总和=0
sumLoop:
lw$t4,($t0)#$t4=数组[i]
加上$t3、$t3、$t4#sum=sum+array[i]
加上$t1,$t1,1#i=i+1
添加$t0、$t0、4#升级数组地址
blt$t1,$t2,sumLoop#如果i
将子序列中的第一个和第四个数字相加,然后将结果除以2。加法的逆运算是减法,因此您可以通过减法从总数中删除一个数字。你可以用它在数组上滑动一个窗口,得到一个没有嵌套循环的移动平均值。@PeterCordes你能告诉我更多关于代码的细节吗?谢谢,将子序列中的第一个和第四个数字相加,然后将结果除以2。加法的逆运算是减法,因此您可以通过减法从总数中删除一个数字。你可以用它在数组上滑动一个窗口,得到一个没有嵌套循环的移动平均值。@PeterCordes你能告诉我更多关于代码的细节吗?非常感谢。