汇编 MIPS:打印已输入的数字

Assembly MIPS: Print a number that have been entered

我是装配新手,遇到了一些困难。

我正在使用 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   

但是当我 运行 这个时,它 returns 值 1 不管输入是什么。

问题似乎出在 "la $a0, ($v0)" 命令上。

虽然我将保存输入数字的 $v0 寄存器的地址加载到用于打印整数的标准寄存器,但它可以工作。

我该如何解决这个问题?

你走在正确的轨道上。正如@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