我有这个代码应该打印字符串的最后一个字符
.data
prompt: .asciiz "Please enter a string :\n"
buffer: .space 1024
.text
.globl main
main:
print_prompt: li $v0, 4
la $a0, prompt
syscall
li $v0, 8 #read text from user as text
la $a0, buffer
li $a1, 255
syscall
la $t1,buffer
loop:
lb $t2,($t1)
beq $t2,$zero,loop1
add $t1,$t1,1
j loop
loop1:
sub $t1,$t1,1
lb $a0,($t1)
li $v0,11
syscall
li $v0,10
syscall
我正在做beq $ t2,$ 0,loop1检查字符串是否已经结束它应该等于零,还是错了?我尝试将此更改为beq $ t2,'?',例如loop1并输入字符'?'在输入中,它工作正常,它打印在'?'
之前的最后一个字符