编写一个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