Assembly 多行上的mips读取字符串
我试图从用户处读取最多100个字符的输入,然后反转输入。当检测到Z时,我的程序应该停止读取,并且应该能够读取多行。现在,我可以在一行上读取输入,并且可以正常工作,我只是在努力处理多行部分。以下是我到目前为止的情况:Assembly 多行上的mips读取字符串,assembly,mips,Assembly,Mips,我试图从用户处读取最多100个字符的输入,然后反转输入。当检测到Z时,我的程序应该停止读取,并且应该能够读取多行。现在,我可以在一行上读取输入,并且可以正常工作,我只是在努力处理多行部分。以下是我到目前为止的情况: .data buffer: .space 100 str2: .asciiz "\nYou wrote:\n" str1: .ascii "Enter string (max 100 chars): " .text main:
.data
buffer: .space 100
str2: .asciiz "\nYou wrote:\n"
str1: .ascii "Enter string (max 100 chars): "
.text
main:
la $a0,str1 #Load and print string asking for string
li $v0,4
syscall
li $v0, 8 #take in input
la $a0, buffer #load byte space into address
li $a1, 100 # allot the byte space for string
move $t1, $a0 #save string to t1
syscall
la $a0, str2 #load and print “You wrote" string
li $v0,4
syscall
la $a0, buffer #reload byte space to primary address
li $t2, 0
strLen: #getting length of string
lb $t0, buffer($t2) #loading value
add $t2, $t2, 1
bne $t0, $zero, strLen
sub $t2, $t2, 1
li $v0, 11 #load immedialtey - print low-level byte
Loop:
la $t0, buffer($t2) #loading value
lb $a0, ($t0)
syscall
sub $t2, $t2, 1
bnez $t2, Loop
li $v0,10 #end program
syscall
由于Z标记输入的结尾,您应该逐字读取,而不是整行。@m0skit0有什么建议吗?读取字符是