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 回答