使用qtspim编写MIPS代码

时间:2014-03-23 16:10:26

标签: mips qtspim

我想在Qtspim的控制台中打印123。 然后打印出“答案= 123”。

为什么我的mips代码不起作用?

# messages.asm 
 .data 
str: .asciiz "the answer = " 
 .text 


main: 

li $v0,5
syscall

li $v0, 4 # system call code for print_string 
la $a0, str # address of string to print
syscall # print the string 


li $v0, 1 # system call code for print_int 
syscall

li $v0, 10 # system call code for exit
 syscall # terminate program

2 个答案:

答案 0 :(得分:1)

系统调用1(print_integer)期望值在寄存器$a0中打印。在您的计划中,当您执行$a0系统调用时,print_integer将不会包含123,因为您已将$a0设置为str的地址。

答案 1 :(得分:0)

li $t0,123
li $v0, 1 # system call code for print_int 
move $a0,$t0
syscall

只需在代码中进行以下更改,它就会打印“答案= 123”。 出现问题是因为您的 a0 仍然分配给字符串,但您需要将其分配给 t0 的值。 move $a0,$t0 会将 t0 的值移动到 a0 并且您的代码将起作用