我想知道如何在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.
我不知道从哪里开始。
答案 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部分的情况下做到这一点。