编写一个MIPS程序,将值加起来并计算平均值

时间:2016-04-06 19:33:41

标签: mips

我有这个任务,我很难搞清楚如何开始。

  

您的程序的数据部分声明如下:

.data
.byte 12
.byte 97
.byte 133
.byte 82
.byte 236
     

编写一个程序,将值加起来并计算平均值。请使用$8来   保存基址,$9保存平均值,$10保存中间结果

我做了一点,但每当我尝试将.asm文件加载到QtSpim时,它甚至都没有正常运行(即除了$8之外没有任何内容被加载到寄存器中)。我一直在阅读this但是根本没有运气,不知道该做什么。这就是我所拥有的:

编辑:经过多次阅读后,我完成了它,我认为它最终是正确的。或者至少我走在正确的轨道上,因为我确实得到了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

1 个答案:

答案 0 :(得分:0)

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

你的addu这部分什么都不做,这就是为什么你错过最后一个addu的原因。