我想在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
答案 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 并且您的代码将起作用