首页 > 解决方案 > 用 128 个随机整数填充 globl 数组并计算平均和并显示它

问题描述

# seed the generator
# 1 - load the generator ID
# 2 - seed the generator# Generate 128 random numbers (loop)

# 1 - load the generator ID 
# 2 - bound the random number generator to less than or equal to 128
# 3 - generate a random number 
# 4 - store number in array
# 4 - go to step 2 until 128 numbers have been generated# Compute the Average

# 1 - add all the numbers in the array (loop)
# 2 - compute the average (use a right shift)
# 3 - Display the average result message
# 4 - Display the average


    .data 
array: .space 512
genID: .word 1
seed:  .word 1235
prompt: .asciiz "\n the average number generated from the number generator is: "
    .text

.globl main

main:
    lw $a0, genID      #loads genID
    la $t0, seed       #loads seed
    
    lw $a1, 0($t0)
    li $v0, 40          #seed the genrator
    syscall
  
    loop:
        addi $t0, $zero, 0   #init the loop counter 
    la $t8, genID        # load the gen ID
    
    lw $a0, 0($t8)         
    li $a1, 16           #bound gen to less than or equal 128
    li $v0, 42           #gen a random number
    syscall
    la $t7 , array($zero)
    
    sw $a0,array($t0)    #store number in array 
    
    addu $t9,$t9, $a0    #holds running sum of ran nums
    bge $t0, 512, exit   #if t0 equals 512 exit
    
    addi $t0, $t0, 4     #increment index
    j loop               #loops back to step 2
    
    srl $t8, $t9, 7      #slr compute avg
    
      exit:
    li $v0, 4
    la $a0, prompt
    syscall
    
    li $v0, 1
    move $a0, $a1
    syscall
    
    
    li $v0,10
    syscall

我正在构建一个程序,用 128 int 填充 globl 数组并计算平均值。该程序符合并运行,但不显示平均数。我试过重新加载 gen 以为它没有收到任何数字,但这似乎不起作用。还尝试重新编写循环,但没有。我错过了什么吗?

标签: arraysmips

解决方案


推荐阅读