0

入力単語の2文字ごとにスペースを追加して印刷する方法。

私のプログラムでは、文字列を逆にすることができます

Loop:

        sub     $t2, $t2, 1     #this statement is now before the 'load address'
        la      $t0, buffer($t2)   #loading value
        lb      $a0, ($t0)
        syscall


        bnez    $t2, Loop       

        li      $v0, 10              #program done: terminating
        syscall
        jr $ra

私の結果

文字列を入力してください:Hello

オリジナル:Hello

反転:olleH

ただし、入力単語の2文字ごとにスペースを追加する方法

文字列を入力してください:Hello

オリジナル:H e l l o

反転:o l l e H

4

1 に答える 1

0

指定したコードは、バッファに格納されている逆の文字列を出力していますが、逆の文字列は元に戻されていません。それがあなたの意図であるなら、あなたが必要とするのは、各文字が印刷された後にスペースを印刷することだけです。

これは、各文字を出力するsyscallの後に(の前にbnez $t2, Loop)これらの2行を追加することによって実現されます。

  li $a0, ' '
  syscall
于 2012-12-26T18:33:53.083 に答える