システムコール機能を備えたSPIMSやMARSのようなものを使用しています。
私は次のように文字列を読んでいます(そしてそれを印刷できるので機能します):
li $v0, 8
la $a0, string
li $a1, 256
syscall
ただし、文字列の1文字にアクセスする際に問題が発生します。したがって、最初の文字にアクセスしてそれを印刷したい場合は、これを試しています。
la $t0, string
lb $a0, ($t0)
li $v0, 4
sys call
私がこのようなことをしようとすると:
la $a0, string
li $v0, 4
syscall
これにより、文字列が文字列全体を指すため、文字列全体が出力されます。
私が次のようなことを試みた場合:
la $a0, string
lb $a0, ($t0)
li $v0, 4
syscall
それは私に範囲外のエラーを与えます。理由はわかりませんが、文字は1バイトの長さではなく、文字列の最初のバイトを$ a0にロードするだけですか?
ありがとうございました