有人可以帮我弄清楚我的代码有什么问题吗?我试图读取一个整数,存储其值并将其打印到屏幕/
.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 :"
答案 0 :(得分:0)
您需要发出已达到程序结束的信号。在SPIM及其分支中,您可以执行此操作with syscall
number 10。
所以当你想要停止执行你的程序时(例如在你打印完整数之后),你会这样做:
li $v0, 10 # syscall 10 = exit
syscall
代码中的其他一些问题:
syscall
数字5返回$v0
中的读取整数。它不会将它存储在$a0
指向的内存中,就像您的代码似乎所假设的那样。
syscall
数字1要求整数的值在$a0
中打印。你在<{1}}中放置了整数的地址(这就是$a0
所做的事情。)