用MIPS替换字符串

时间:2016-10-16 10:51:52

标签: assembly mips

我想知道如何在MIPS汇编中替换字符串中的两个字符。例如

 W/System: ClassLoader referenced unknown path: /data/app/com.dummy.dummy-1/lib/arm64
W/art: Before Android 4.1, method android.graphics.PorterDuffColorFilter android.support.graphics.drawable.VectorDrawableCompat.updateTintFilter(android.graphics.PorterDuffColorFilter, android.content.res.ColorStateList, android.graphics.PorterDuff$Mode) would have incorrectly overridden the package-private method in android.graphics.drawable.Drawable
I/Process: Sending signal. PID: 17472 SIG: 9
Application terminated.

我不知道从哪里开始。

2 个答案:

答案 0 :(得分:1)

假设str在$ s0中。设$ s1是一个迭代器,就像你在C中的i一样。$ s1将是存储在$ s0的基地址的偏移量。因此,为了查找和替换,您通过递增$ s1来迭代字符串。 让字符串替换为$ s2并替换$ s3。

add $s1,$s1,$zero #initializing $s1 to 0
loop:
    add $t0,$s0,$s1
    lb $t1,0($t0)
    bne $t1,$s2,skip_replace
    sb $s3,0($t0)
    skip_replace:
    addi $s1,$s1,1
    bne $t1,$zero,loop

答案 1 :(得分:0)

在MIPS Asm中实现功能的简便方法,尤其是在与学校项目有关的情况下,首先是使用C(或其他低级编程语言)代码来实现该功能。 然后开始将其转换为MIPS,随着时间的流逝,您最终将能够在不使用C部分的情况下做到这一点。