0
MIPSに、第2引数で指定されたアドレスに文字列をコピーする単純な関数を記述しようとしています。最初の引数は、コピーする文字列のアドレスです。私はこれを書いた:アセンブリMIPS文字列をアドレスにコピー
.globl strcpy
strcpy:
lb $t0 ($a0)
beqz $t0 out
sb $a0 ($a1)
addi $a0 $a0 1
addi $a1 $a1 1
j strcpy
out: jr $ra
しかし、私は予期せぬ結果を得ていると私は間違っていたか分からない。
'sb $ a0($ a1)'の代わりに 'sb $ t0($ a1)'が必要です。デバッガの使い方を学ぶ。 – Jester
また、文字列をヌル文字で終了することなく関数から戻ってきています。結果を扱うCの文字列関数が必要な場合は、あなたは失望します。関数がCの 'strcpy()'の実装であると想定されている場合は、間違った値も返します。 – EOF
ありがとう、私は問題を修正し、それが動作確認することができます。 – 11clock