MIPS コードを調べているうちに、混乱が生じました。コードは次のように示されます
.data
 key: .ascii "key: "              # "key:  \n"
char: .asciiz "  \n"               
 .text
 .globl main
main:
 jal getchar     
la $a0, char                    # $a0 contains address of char variable (" \n")
  sb $v0, ($a0)                   # replace " " in char with v0, which is read_character (X) 
 la $a0, key                     # now a0 will contain, address of "key: "  "X\n"
私が理解していないのは、ロードアドレス命令がどのように機能するかということです。最初の a0 には、char 変数のアドレスが含まれていました。次の行では、その場所に v0 の値を保存しています。( ) にはオフセットがありませんが$a0、0( ) のように 0 と見なされます$a0か? " " の空のスペースだけが v0 に置き換えられ、"\n" が置き換えられないのはなぜですか? または、空のスペースと \n 文字の両方が v0 によって置き換えられる場合もありました。
次に、キーのアドレスを a0 にロードすると、以前のアドレスが上書きされます。a0 にはキーのアドレスのみが含まれているはずですが、コメントからは 2 つの文字列が連結されているようです。それはどのように起こりますか。