2016-10-16 16 views
0

Ich wollte wissen, wie es möglich ist, zwei Zeichen in einer Zeichenfolge in MIPS-Assembly zu ersetzen. Zum BeispielErsetzen von Strings in MIPS

.data 
str:   "MIPS is love" 
replacement: "\n" 
stringtoreplace: " " 

Ich weiß nicht, wo ich damit anfangen soll.

+0

Sie beginnen mit dem Gedanken, was die Logik ist, und dann, dass in asm Schreiben –

+0

Wie Sie über eine Zeichenfolge in MIPS iterieren? –

+0

Durch Schreiben einer Schleife, in der Sie ein Register inkrementieren, bis eine bestimmte Bedingung erfüllt ist. – Michael

Antwort

1

Angenommen str ist in $ s0. Sei $ s1 ein Iterator wie dein i in C. $ s1 ist der Offset zur Basisadresse, die bei $ s0 gespeichert ist. Um also zu suchen und zu ersetzen, müssen Sie den String durchlaufen, indem Sie $ s1 inkrementieren. Lassen Sie die zu ersetzende Zeichenfolge in $ s2 und die Ersetzung in $ 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