嘿伙计们我是MIPS编程的新手,并且很难掌握MIPS的语法和规则。我正在尝试编写一个程序,它接受3个整数的用户输入,并将它们从最小到最大排序。到目前为止,我的代码是
.data
prompt: .asciiz "Enter an integer: "
.text
.global main
main:
li $v0, 4
la $a3, prompt
syscall
li $v0, 5
li $a0, $v0
syscall
li $v0, 5
li $a1, $v0
syscall
li $v0, 5
li $a2, $v0
syscall
我很困惑如何获取输入并将它们存储到3个单独的寄存器$ a0- $ a2中。 另外,我不知道如何用参数声明一个函数。我还想知道上面收集用户输入的代码是否正确,因为我觉得我在这里做错了。我不习惯这种低级语言,但我对Java非常流利。如果有助于简化Java,可以用Java进行任何解释。感谢
答案 0 :(得分:0)
这里有几点:
li
用于加载immediates。对于两个寄存器,您可能需要move
。您不必加载5次。
要打印字符串,请将字符串加载到$ a0。
如果您精通Java,那么排序算法应该没问题。你甚至不需要一个功能。
函数使用jal
来保存返回地址,并使用$ a0- $ a3寄存器转到函数。如果您不知道它是如何工作的,您应该查看相关的教程。