装配MIPS:打印已输入的数字

时间:2016-10-17 17:45:52

标签: assembly mips

我是大会上的新手,我遇到了一些困难。

我正在使用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寄存器的地址加载到标准寄存器以打印整数,它可以工作。

我该如何解决这个问题?

1 个答案:

答案 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