基于显式的寻址
基于显式的地址指定为基本寄存器号 RA和位移 D
基于显式的地址指定为基本寄存器号 RA和位移 D。 基本寄存器保存基本地址。 在运行时,处理器将位移添加到基本寄存器的内容以获得有效地址。 如果指令没有操作数格式 D(RA) ,那么该指令不能具有基于显式的地址。 如果将 D(RA) 表单用于这些指示信息,那么将报告错误 159。
位移可以是绝对表达式,可重定位表达式,受限外部表达式或 TOC 相对表达式。 仅当位移是 csect (控制部分) 名称或由 .comm 伪操作定义的公共块的名称时,位移才能是外部表达式。
注意:
- 外部化标签仍可重新定位,因此外部化标签也可用作位移。
- 当使用可重定位表达式进行位移时,不会生成 RLD 条目,因为只有来自 csect 的标签 (即可重定位表达式) 的偏移量用于位移。
虽然程序员必须使用绝对表达式来指定基本寄存器本身,但基本寄存器的内容可以通过绝对,可重定位或外部表达式来指定。 如果基本寄存器包含可重定位值,那么有效地址可重定位。 如果基本寄存器包含绝对值,那么有效地址为绝对地址。 如果基本寄存器包含由外部表达式指定的值,那么如果表达式最终定义为 "绝对" ,那么有效地址的类型为 "绝对" ,如果表达式最终定义为 "可重定位" ,那么 "可重定位"。
使用基于显式的寻址时,请记住:
- GPR 0 不能用作基本寄存器。 指定 0 将指示汇编程序完全不使用基本寄存器。
- 由于D最多占用 16 位,因此位移范围必须在-2 至 (2**15)-1 之间。 因此,对其进行引用的项的基本地址与地址之间的差异必须小于 2 * *15 字节。D.(亚美尼亚共和国) 表单需要 注: D. 和 亚美尼亚共和国 。 可以使用格式 0 (RA) 或 D(0) ,但 D 和 RA 操作数都是必需的。 有两个例外:
- 当 D 是绝对表达式时,
- 当 D 是受限的外部表达式时。