使用Mars的MIPS如何在按Enter键后读取值?

时间:2013-04-27 00:09:11

标签: mips mars-simulator

我怎么能读取值,以便我可以将它们存储在内存中?我需要让用户输入值,然后按回车键,这样我就可以获得这些值并使用它们。

谢谢

1 个答案:

答案 0 :(得分:1)

你应该使用服务5来读取一个整数,使用6来读取一个浮点数,使用7来表示一个double,使用service 8来读取一个字符串。有关提供的系统调用服务,请参阅MARS reference

这是一个从控制台读取整数和字符串并将结果保存在变量numberbuffer中的示例:

.data
  number: .word 0
  buffer: .space 80

 .text
   li $v0, 5 # service 5 reads integer from console
   syscall

   sw $v0, number # Store read integer into number
   li $v0, 8 # service 8 reads a string
   la $a0, buffer
   li $a1, 80  # buffer size
   syscall  # input text will be stored in buffer 

   li $v0, 7  # service 7 reads double
   syscall # $f0-$f1 contains the double read
   mov.d $f2, $f0
   syscall # read another double

   div.d $f12, $f2, $f0  # Divide the first double by the second double
   li $v0, 3
   syscall  # Print result of division