我是大会上的新手,我遇到了一些困难。
我正在使用MARS 4.5,我想尝试编写一个代码,该代码可以从键盘获取整数并在之后打印出来。
.data
number: .word
.text
.globl main
main:
li $v0, 5
syscall
move $v0, $a0
li $v0, 1
la $a0, ($v0)
syscall
li $v0, 10
syscall
但是当我运行它时,无论输入是什么,它都会返回值1.
问题似乎出现在“la $ a0,($ v0)”命令中。
我虽然如果我将保存输入编号的$ v0寄存器的地址加载到标准寄存器以打印整数,它可以工作。
我该如何解决这个问题?
答案 0 :(得分:0)
你走在正确的轨道上。正如@Jester所解释的那样,您需要删除加载地址命令并更正move
个操作数。
.data
number: .word
.text
.globl main
main:
li $v0, 5 #Read integer to $v0
syscall
move $a0, $v0 #Move integer to $a0
li $v0, 1 #Print integer from $a0
syscall
li $v0, 10 #Exit
syscall