0

有人可以帮我弄清楚我的代码有什么问题吗?我正在尝试读取一个整数,存储它的值并将其打印到屏幕上/

.text

main:

li $v0, 5
la $a0, testInteger
syscall

li $v0, 4
la $a0, resultString
syscall

li $v0, 1    
la $a0, testInteger
syscall

.data

testInteger: .word 5
resultString: .ascii "The integer is :"
4

1 回答 1

0

您需要发出信号表明您的程序已经结束。在 SPIM 及其分支中,您可以使用syscall数字 10执行此操作。

因此,当您希望停止执行程序时(例如,在打印整数之后),您可以:

li $v0, 10   # syscall 10 = exit    
syscall

您的代码中的其他一些问题:

  1. syscall数字 5 返回读取的整数 in $v0。它不会$a0像您的代码所假设的那样将其存储在指向的内存中。

  2. syscall数字 1 期望在 中打印整数的值$a0。您将整数的地址$a0放入(就是这样la做的)。

于 2014-09-25T15:57:38.600 回答