我在mips汇编程序中有一些代码,我在标题中得到了类似的东西。如您所见,我有$li $v0, 10
和syscall
所以有人知道它有什么问题吗?
.data
text0: .asciiz "Enter strng: \n"
buf0: .space 100
.text
.globl main
main:
la $a0, text0
li $v0, 4
syscall
la $a0, buf0
li $a1, 99
li $v0, 8
syscall
li $t0, 'a'
li $t1, 'z'
li $t2, 0x20
la $t3, buf0
loop_begin:
lb $t4, ($t3)
beq $t4, $zero, loop_end
blt $t4, $t0, increment_ptr
bgt $t4, $t1, increment_ptr
sub $t4, $t4, $t2
sb $t4, ($t3)
increment_ptr:
addi $t3, $t3, 1
b loop_begin
loop_end:
la $a0, buf0
li $v1, 4
syscall
li $v0, 10
syscall
答案 0 :(得分:0)
我无法重现您的错误消息。也许你在SPIM中重新初始化而不重新加载程序集文件。
无论如何,您还没有正确设置最终的print_string
系统调用:
li $v1, 4 # <-- SHOULD BE $v0
syscall
如果您使用SPIM中的单步功能来调试代码,您可能会发现这一点,所以我建议您将其用于将来的开发。