编写一个MIPS程序,将这些值相加并计算平均值
我有这项任务,我很难想出如何开始 您的程序具有如下声明的数据节:编写一个MIPS程序,将这些值相加并计算平均值,mips,Mips,我有这项任务,我很难想出如何开始 您的程序具有如下声明的数据节: .data .byte 12 .byte 97 .byte 133 .byte 82 .byte 236 编写一个程序,将这些值相加并计算平均值。请使用$8来 保存基址,$9保存平均值,$10保存中间结果 我已经做了一点,但是每当我尝试将.asm文件加载到QtSpim时,它甚至不能正常运行(即,除了$8,没有任何东西加载到寄存器中)。我一直在读书,但一点运气都不知道该做什么。以下是我所拥有的: 编辑:我在多读了几遍之后才算出来,
.data
.byte 12
.byte 97
.byte 133
.byte 82
.byte 236
编写一个程序,将这些值相加并计算平均值。请使用$8
来
保存基址,$9
保存平均值,$10
保存中间结果
我已经做了一点,但是每当我尝试将.asm文件加载到QtSpim时,它甚至不能正常运行(即,除了$8
,没有任何东西加载到寄存器中)。我一直在读书,但一点运气都不知道该做什么。以下是我所拥有的:
编辑:我在多读了几遍之后才算出来,我认为它最终是对的。或者至少我在正确的轨道上,因为我用9美元就能得到正确的答案
## Assignment4_Question2.asm
.data
b1: .byte 12
b2: .byte 97
b3: .byte 133
b4: .byte 82
b5: .byte 236
.text
main:
ori $13,$0,0x5 # Initialize 5 for division later on
ori $12,$0,0 # Initialize $12 with 0
lui $8,0x1000 # Save base address
lbu $11,b1($8) # Load byte 1
addu $10,$11,$12 # Add byte 1 to $12; $10 is now sum
lbu $11,b2($8) # Load byte 2
addu $10,$11,$10 # Add byte 2 to sum
lbu $11,b3($8) # Load byte 3
addu $10,$11,$10 # Add byte 3 to sum
lbu $11,b4($8) # Load byte 4
addu $10,$11,$10 # Add byte 4 to sum
lbu $11,b5($8) # Load byte 5
addu $10,$11,$10 # Add byte 5 to sum
divu $10,$13 # Divide sum by 5
mflo $9 # Store in $9
## End of file
您的addu此部分不起任何作用,这就是为什么您缺少最后一个addu。为什么您要尝试从
12($8)
和97($8)
加载?据我所知,你们并没有在这些地址上放任何东西。起初我真的很困惑,但我现在才弄明白。我将用我的答案编辑我的帖子。
ori $13,$0,0x5 # Initialize 5 for division later on
ori $12,$0,0 # Initialize $12 with 0
lui $8,0x1000 # Save base address
lbu $11,b1($8) # Load byte 1
addu $10,$11,$12 # Add byte 1 to $12; $10 is now sum