Assembly 阵列平均MIPS
如何计算前4位数字的平均值,1,2,3,4和后4位数字的平均值2,3,4,5,依此类推,直到6,7,8,9。我还想在控制台中显示结果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
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你能告诉我更多关于代码的细节吗?非常感谢。