2

32 ビット SPARC アーキテクチャでは、ロード命令とストア命令 (ld、ldub、ldsb、lduh、st、stb など) の両方で、メモリ アドレスを角括弧で囲む必要があります。例えば、

st %l0, [%fp - 4]
ld [%i0], %l0

どうしてこれなの?ロード命令とストア命令だけがメモリにアクセスできるのに、なぜ角括弧が必要なのですか?

これは読みやすさのためだけですか、それとも角かっこを使用しないロードおよびストア操作の別の使用法が存在しますか?

4

1 に答える 1

3

これは、多くの (ほとんどではないにしても) アセンブリ言語で共通の規則です。何かがメモリ アドレスとして逆参照される場合、それは角かっこで囲まれます。

SPARC では 、 などの別の使用法が許可されていませんがldstあいまいさを避けるために規則は守られています。

于 2013-10-24T06:10:45.953 に答える