【问题标题】:Why are square brackets needed in SPARC assembly ld/st instructions?为什么 SPARC 汇编 ld/st 指令中需要方括号?
【发布时间】:2013-10-24 06:04:21
【问题描述】:

在 32 位 SPARC 架构上,加载和存储指令(ld、ldub、ldsb、lduh、st、stb 等)都需要在内存地址两边加上方括号。例如,

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

这是为什么?由于加载和存储指令是唯一可以访问内存的指令,为什么需要方括号?

这只是为了可读性还是存在不使用方括号的加载和存储操作的另一种用法?

【问题讨论】:

    标签: assembly sparc


    【解决方案1】:

    这是许多(如果不是大多数)汇编语言的通用约定:当某个东西作为内存地址被取消引用时,它被括在括号中。

    尽管 SPARC 不允许 ldst 等的替代用法,但仍遵守约定以避免任何歧义。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-01-24
      • 2014-08-09
      • 2017-05-25
      • 2014-02-10
      • 2017-01-03
      • 2022-11-10
      • 2010-11-09
      相关资源
      最近更新 更多