MIPS程序集将字符串的字符复制到正确索引处的新字符串中

时间:2019-03-29 19:16:48

标签: string assembly indexing mips

说我有一个字符串“ helloworld”,另一个字符串“ _________”和参数char“ o” 程序应以正确的索引将第一个字符串的两个o都移动/复制到第二个字符串,即结果为:“ ____ o_o___”。 现在,我确实编写了一段代码,该代码可以找到字符串中的特定字符并给出其索引(请参见下文)。但我不知道从现在开始如何前进。

.data
    myString:   .asciiz     "helloworld"
    delim:      .byte       'o'

.text

la $s1, myString        # load the string
lbu $s2, delim          # load the delim (character)
addi $t1, $zero, 0      # initialize counter

find_loop:
lb   $t0, ($s1)         # load first byte from string
beqz $t0, exit          # exit the loop if found NULL
beq  $t0, $s2, found    # go to "found" if char is found
addi $t0, $t0, 1        # point to next byte
addi $s1, $s1, 1        # increase index of string
addi $t1, $t1, 1        # increment the counter to track the index
j find_loop 

found:
    move $a0, $t1       # move index of found char to a0 for printing
    li $v0, 1
    syscall
    li $v0, 10
    syscall
exit:
    li $v0, 10
    syscall

此代码返回4,它是字符串中第一个“ o”的索引。有什么建议可以继续吗?

0 个答案:

没有答案