首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MIPS:平均找出5个整数

MIPS:平均找出5个整数
EN

Stack Overflow用户
提问于 2018-01-18 05:36:07
回答 2查看 2.7K关注 0票数 0

目标:使用用户输入,找出平均值使用五个寄存器。

示例:1 3 2 9 4

输出:3

输出为3,因为3.8是小数,我希望它是整数

我的目标是不使用数组,但我在添加所有5个寄存器时遇到了困难:

代码语言:javascript
复制
.data
   prompt1: .asciiz " Please enter an integer: "
   prompt2: .asciiz " Please enter an integer: "
   prompt3: .asciiz " Please enter an integer: "
   prompt4: .asciiz " Please enter an integer: "
   prompt5: .asciiz " Please enter an integer: "
   result: .asciiz "The average is: "

.text
main:
   #t0 - hold prompt1
   #t1 - hold prompt2
   #t2 - hold prompt3
   #t3 - hold prompt4
   #t4 - hold prompt5
   #t5 - hold sum from prompt1 to prompt5
   #t6 - hold the average value


   # Prompt the user to enter integer1.
   li $v0, 4        # syscall to print string
   la $a0, prompt1
   syscall

   # Read integer1
   li $v0, 5        # syscall to read an integer
   syscall
   move $t0, $v0        # move number to read into $t0

   # Prompt the user to enter integer 2.
   li $v0, 4
   la $a0, prompt2
   syscall

   # Read integer2
   li $v0,5
   syscall
   move $t1, $v0

   # Prompt the user to enter integer 3.
   li $v0, 4
   la $a0, prompt3
   syscall

   # Read integer3
   li $v0,5
   syscall
   move $t2, $v0

   # Prompt the user to enter integer 4.
   li $v0, 4
   la $a0, prompt4
   syscall

   # Read integer4
   li $v0,5
   syscall
   move $t3, $v0

   # Prompt the user to enter integer 5.
   li $v0, 4
   la $a0, prompt5
   syscall

   # Read integer5
   li $v0,5
   syscall
   move $t4, $v0

我犯错误的那一部分

代码语言:javascript
复制
   # add all integers to $t5
   add $a0, $t0, $t1, $t2, $t3, $t4
   li $v0, 1
   syscall

继续..。

代码语言:javascript
复制
   # Read the sum
   li $v0, 5
   syscall
   move $t5, $v0

   # Divide Sum / count
   div $t5, 5

   # retrieve it
   mflo $t6

   #print out the average
   move $a0, t6
   li $v0, 1
   la $a0, result
   syscall

exit:
   li $v0, 10
   syscall

我收到一条错误消息

spim:(解析器)第71行的语法错误添加$a0,$t0,$t1,$t2,$t3,$t4

EN

回答 2

Stack Overflow用户

发布于 2021-03-30 21:43:34

您可以使用此代码添加5个整数,这是您的代码的临时版本。

代码语言:javascript
复制
.data
   prompt1: .asciiz " Please enter an integer: "
   prompt2: .asciiz " Please enter an integer: "
   prompt3: .asciiz " Please enter an integer: "
   prompt4: .asciiz " Please enter an integer: "
   prompt5: .asciiz " Please enter an integer: "
   result: .asciiz " The average is: "

.text
main:
   #t0 - hold prompt1
   #t1 - hold prompt2
   #t2 - hold prompt3
   #t3 - hold prompt4
   #t4 - hold prompt5
   #t5 - hold sum from prompt1 to prompt5
   #t6 - hold the average value


   # Prompt the user to enter integer1.
   li $v0, 4        # syscall to print string
   la $a0, prompt1
   syscall

   # Read integer1
   li $v0, 5        # syscall to read an integer
   syscall
   move $t0, $v0        # move number to read into $t0

   # Prompt the user to enter integer 2.
   li $v0, 4
   la $a0, prompt2
   syscall

   # Read integer2
   li $v0,5
   syscall
   move $t1, $v0

   # Prompt the user to enter integer 3.
   li $v0, 4
   la $a0, prompt3
   syscall

   # Read integer3
   li $v0,5
   syscall
   move $t2, $v0

   # Prompt the user to enter integer 4.
   li $v0, 4
   la $a0, prompt4
   syscall

   # Read integer4
   li $v0,5
   syscall
   move $t3, $v0

   # Prompt the user to enter integer 5.
   li $v0, 4
   la $a0, prompt5
   syscall

   # Read integer5
   li $v0,5
   syscall
   move $t4, $v0

   # add all integers to $t5
   add $t5, $t0, $t1
   add $t5, $t5, $t2
   add $t5, $t5, $t3
   add $t5, $t5, $t4

   li $t6,5

   # Divide Sum / count
   div $t5, $t5, $t6

  

   #print out the average
   li $v0, 4
   la $a0, result
   syscall

   move $a0, $t5     
   li $v0, 1        #prints average value
   syscall


exit:
   li $v0, 10
   syscall
票数 1
EN

Stack Overflow用户

发布于 2018-01-18 08:42:43

这是否意味着,我必须使用数组在MIPS中添加多个整数?

不,您可以将所有内容都保存在寄存器中,但是您必须为您的add表达式中的每个+操作符使用一个单独的+(或addu)指令。

add 指令正好有两个输入,一个输出.

基本MIPS指令集参考.

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48314474

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档