ここから本文です

コンピューターアーキテクチャの質問です。

per********さん

2020/3/2701:17:16

コンピューターアーキテクチャの質問です。

このアセンブリ言語について、ロード命令とストア命令の表記の仕方に、0(r3)とかありますがこれは、どういう意味でしょうか?

いろいろ調べましたが、専門用語が多すぎて初学者にはわかりずらいです。

どなたか、解説願います。

コンピューターアーキテクチャ,アセンブリ言語,初学者,R3,ストア命令

閲覧数:
185
回答数:
3

違反報告

回答

1〜3件/3件中

並び替え:回答日時の
新しい順
|古い順

yuk********さん

2020/3/2716:32:47

いやいや、専門用語が多すぎて分かりづらいとか、そういう問題じゃないよ?
専門用語が分からないということは、つまり基礎的知識が身に付いていないってことよ?
逆に言えば、「基礎的知識さえ身に付ければ理解できる」し、「なんで基礎をすっ飛ばしていきなりコードを読もうとしてんの?」って話よ?

アセンブリ言語を理解するには、まず最初にターゲットとなるCPUのレジスタ構成とアドレシングモード(とその記述方法)を知らなければ話にならんのよ。
それがなんのCPU用のコードか知らないけれど、他のCPUに倣えば、
r3はレジスタ名、
(r3)はレジスタr3を用いた「レジスタ間接アドレシング」
0(r3)はレジスタr3にオフセット値0を加えた「ディスプレースメント付きレジスタ間接アドレシング」。たぶん。

ま、そんなわけで
・レジスタとは何か?
・アドレシングモードとは何か?
・レジスタ間接アドレシングとは何か?
・ディスプレースメントとは何か?
と、この辺から学んでみては?

プロフィール画像

カテゴリマスター

n2q********さん

2020/3/2708:31:18

MIPS のアセンブリ言語で、

「0(r3)」

これは r3 レジスタの値 + 0 というアドレスということですね。



《参考》

lw r4, 0(r3)

これは、r3 + 0 番地の word データ(MIPS では32ビット整数)を r4 に読み込むための命令。


sw r4, 0(r3)

これは r4 内の word データ(同)を r3 + 0 番地に書き込むための命令。

  • 質問者

    per********さん

    2020/3/2711:20:08

    ありがとうございます。
    つまり、r3は、レジスタのアドレスであり、lw r4 0(r3)のまえの0は、主記憶のメモリアドレスをあらわしているのでしょうか?

    もしそうなら、主記憶のメモリアドレス0番地に格納されている情報をレジスタアドレスr3に格納し、それを別の演算でつかうため、r4にロードしているという解釈であっているのでしょうか?

  • その他の返信(1件)を表示

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

2020/3/2707:21:53

> 専門用語が多く
それをちゃんと始末しておかないと、ここだけ乗り切っても...

例えばどういう解説が見つかって、その中でどういうコトバがわかりませんでしたか?

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる