基于显式的寻址

基于显式的地址指定为基本寄存器号 RA和位移 D

基于显式的地址指定为基本寄存器号 RA和位移 D。 基本寄存器保存基本地址。 在运行时,处理器将位移添加到基本寄存器的内容以获得有效地址。 如果指令没有操作数格式 D(RA) ,那么该指令不能具有基于显式的地址。 如果将 D(RA) 表单用于这些指示信息,那么将报告错误 159。

位移可以是绝对表达式,可重定位表达式,受限外部表达式或 TOC 相对表达式。 仅当位移是 csect (控制部分) 名称或由 .comm 伪操作定义的公共块的名称时,位移才能是外部表达式。

注意:
  1. 外部化标签仍可重新定位,因此外部化标签也可用作位移。
  2. 当使用可重定位表达式进行位移时,不会生成 RLD 条目,因为只有来自 csect 的标签 (即可重定位表达式) 的偏移量用于位移。

虽然程序员必须使用绝对表达式来指定基本寄存器本身,但基本寄存器的内容可以通过绝对,可重定位或外部表达式来指定。 如果基本寄存器包含可重定位值,那么有效地址可重定位。 如果基本寄存器包含绝对值,那么有效地址为绝对地址。 如果基本寄存器包含由外部表达式指定的值,那么如果表达式最终定义为 "绝对" ,那么有效地址的类型为 "绝对" ,如果表达式最终定义为 "可重定位" ,那么 "可重定位"。

使用基于显式的寻址时,请记住:

  • GPR 0 不能用作基本寄存器。 指定 0 将指示汇编程序完全不使用基本寄存器。
  • 由于D最多占用 16 位,因此位移范围必须在-2 至 (2**15)-1 之间。 因此,对其进行引用的项的基本地址与地址之间的差异必须小于 2 * *15 字节。
    D.(亚美尼亚共和国) 表单需要 注: D.亚美尼亚共和国 。 可以使用格式 0 (RA) 或 D(0) ,但 DRA 操作数都是必需的。 有两个例外:
    • D 是绝对表达式时,
    • D 是受限的外部表达式时。
    如果在这两种情况下缺少 RA 操作数,那么假定为 D(0)。