教授にこのことについて質問することもできたかもしれませんが、ここ数週間、あまり頻繁に大学に行っていなかったので、この問題に遭遇した人に聞いてみます。
MIPS では、整数の配列の開始アドレス (A[0] のアドレス) がレジスタ $s3 に格納されている場合、配列の 9 番目の要素を一時レジスタ $t0 に格納するためのアセンブラ コードは lw $ になります。 t0 32($s3). したがって、オフセットは 32 です。これの説明は、今日のほとんどのアーキテクチャがメモリ内のすべてのバイト (つまり、すべてのメモリ セル) を参照し、整数は 4 バイトであるため、「単語」の最も一般的なサイズである次の整数のアドレスですin memory は現在のアドレス + 4 になり、9 番目の整数のアドレスを作成します: 開始アドレス + 4*8. 良い!
これで、ASCII でエンコードされた文字の場合、必要なビット数は 8 = 1 バイトであることがわかりました。だから私が聞きたいのは、文字の配列がある場合、配列内の次の文字のアドレスが「現在のアドレス+ 1」になるかどうかです。チャットには1つのメモリセルのみが必要であり、すべてのメモリセルには自分の住所?または、アーキテクチャのワード サイズが 4 バイトであるため、参照できる最小量はワードですが、すべてのメモリ セルには独自のアドレスがあり、文字は 1 バイトしか必要としないのに 4 バイトかかりますか? 最初のケースが true の場合、プロセッサーはどのようにして天候を知り、アドレス 4 に 1 を追加するのでしょうか? データ型を決定するためにコンパイラによって作成される追加の命令に必要ではないでしょうか? また、int が 4 つのアドレスによって参照されるスペースを占有したため、
現在、私はキャッシュメモリを使用しています(ちなみに、パターソンとヘネシーのコンピューターの構成と設計から学んでいます)。これは本当に気になるので、誰かが答えてくれたらありがたいです。ほんとありがと!