assembly - 阵列平均 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
解决方案
推荐阅读
- python - 在 Python3 中将字符串与多个字符串进行比较
- c# - 将实体属性 DB 属性设置为 IsRequired() 和 defaultValue: "('')" 解决方法?
- cmake - 如何为 GCC 覆盖 -nostdinc
- python - 如何修复不满足 biner 约束的 PuLP VRP 模型
- jersey-2.0 - 在 Gradle 中使用带有 Open Liberty 的 Jersey
- swift - 有人可以简单地解释一下 Swift 的应用程序二进制稳定性吗?
- javascript - 如何停止在同一对象上触发“点击”事件
- ios - 两个对象没有相互接触,但是contactTestBetween()返回结果
- geolocation - 没有 wifi 或 gps 的设备跟踪
- java - 实现hashcode和equal的职责