我试图在MIPS中找到输入字符串的大小。 (最多100个字符,但我需要知道用户输入的确切数量)。当用户输入新行时,字符串结束。从我注意到循环正常工作,当涉及到递增迭代器和大小时。但是,应该存储要与$t7
进行比较的当前字符的\n
寄存器永远不会更新。它始终保持为0.这就是我遇到无限循环的原因,因为永远不会遇到破坏条件。
.data
input: .space 400
iterator: .word 0
size: .word 0
.text
main:
#Getting user input
li $v0,8
la $a0,input
li $a1, 400
syscall
la $s0, ($a0)
lw $t2, iterator
lw $t6, size
li $t5, '\n'
jal size_loop
size_loop:
sll $t4, $t2,0 #t4 = 1 * t2
addu $t4, $t4, $s0 #t4 = t4 + memory loccation of input
lb $t7, ($t4)
beq $t5, $t7, exit_size_loop
addi $t2, $t2,1
addi $t6, $t6,1
j size_loop
exit_size_loop:
addi $s6, $t6, 0
j printing_loop