嘿,伙计们,我是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来解释,如果这有助于简化的话。谢谢
发布于 2014-10-07 04:33:57
这里有几点:
li用于立即加载。您可能需要两个寄存器的move。你不用装5次三次。
若要打印字符串,请将字符串加载到$a0中。
如果您精通Java,那么排序算法就没有问题了。你甚至不需要什么功能。
函数使用jal保存返回地址,然后使用$a0-$a3寄存器转到函数。如果您不知道它是如何工作的,您应该查阅有关它的教程。
https://stackoverflow.com/questions/26228249
复制相似问题