2016-10-16 20 views
0

MIPSアセンブリの文字列内の2つの文字を置き換える方法がわかっていました。たとえば、MIPSの文字列を置換する

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

私はこれでどこから始めるべきかわかりません。

+0

あなたはロジックが何であるかを考え、次にASM –

+0

にどのようにMIPSの文字列を反復処理するかということを書面で始めますか? –

+0

所定の条件が満たされるまでレジスタをインクリメントするループを作成します。 – Michael

答えて

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