私はMIPS & MARSの初心者です。私のプログラムの一環として、ユーザーから文字列を読みたいと思っています。MARSのMIPSシステムコール:「アドレスが範囲外です」
.globl test
.data 0x10010000
foo: .asciiz "Input a string"
.data 0x10020000
in: .asciiz "xyz"
.text 0x00400000
test:
li $v0, 54
add $a0, $zero, 0x1001
add $a1, $zero, 0x1002
add $a2, $zero, 3
syscall
アイデアが0x1002にメモリに最大3で言うの長さの文字列を読み取ることであるが、以下のように私は簡単なコードを持っています。コードを実行すると、「実行時例外0x00400010:アドレスが範囲外です。0x00001001」と表示されます。
どうしてですか?どうすれば修正できますか?私は何か非常にばかげていると思うが、それを理解することはできない。