【发布时间】:2013-10-24 06:04:21
【问题描述】:
在 32 位 SPARC 架构上,加载和存储指令(ld、ldub、ldsb、lduh、st、stb 等)都需要在内存地址两边加上方括号。例如,
st %l0, [%fp - 4]
ld [%i0], %l0
这是为什么?由于加载和存储指令是唯一可以访问内存的指令,为什么需要方括号?
这只是为了可读性还是存在不使用方括号的加载和存储操作的另一种用法?
【问题讨论】:
在 32 位 SPARC 架构上,加载和存储指令(ld、ldub、ldsb、lduh、st、stb 等)都需要在内存地址两边加上方括号。例如,
st %l0, [%fp - 4]
ld [%i0], %l0
这是为什么?由于加载和存储指令是唯一可以访问内存的指令,为什么需要方括号?
这只是为了可读性还是存在不使用方括号的加载和存储操作的另一种用法?
【问题讨论】:
这是许多(如果不是大多数)汇编语言的通用约定:当某个东西作为内存地址被取消引用时,它被括在括号中。
尽管 SPARC 不允许 ld、st 等的替代用法,但仍遵守约定以避免任何歧义。
【讨论】: