【问题标题】:addressing modes in PDP-11PDP-11 中的寻址模式
【发布时间】:2012-12-10 00:38:18
【问题描述】:

我有这个指令:

Move @-4(pc), 766(r5)
pc : 1000 (start point)

你能解释一下这条指令应该如何运行吗?

【问题讨论】:

    标签: assembly pdp-11 addressing-mode


    【解决方案1】:

    我不记得 pdp,但 VAX 语法,它是一个扩展,意味着以下: 766(r5) 表示第二个操作数的地址是 R5 + 766(如果是 PDP,则为八进制)。 @-4(RC) 我猜是自动递减,所以它需要 RC,subs 4,读取一个值,它是一个变量的地址。因此,入口点前 4 个字节有指向 var1 的指针,var2 位于 R5 + 766(oct);移动显然是移动指令。我猜,它会将 OP1 移动到 OP2。

    【讨论】:

    • 我需要知道每个的有效地址是什么??
    • 如果我没记错的话,如前所述:op2 在 R5 + 766; OP1 在地址,即存储在 1000-4
    【解决方案2】:

    在我看来像 PDP-11 代码...@-4(PC) 表示“将程序计数器的内容减 4 以提供地址...”而“@”表示获取该内容地址。因此,如果 PC 为 1000,则从中减去 4(八进制)得到 774,然后在地址 774 中查找内容(这就是“@”的含义)。得到这个值 - SOURCE 操作数之后,我们必须把它放在某个地方,即一个 DESTINATION 地址。转到 R5(通用寄存器 5)并在那里查找地址。将 766 八进制添加到该地址,您就有了 DESTINATION 地址(无论是什么)。

    然后 PDP-11s CPU 可以将 SOURCE 移动到 DESTINATION,因为它现在拥有两者。 (而且它是 MOV 指令而不是 MOVe - 如果我的记忆正确的话,所有 PDP 指令都是 3 个字母的助记符 - 或者至少其中大部分是)

    说了这么多 (!!) SOURCE 操作数低于 1000 标记,即它在保留区域中(PDP-11 上的地址 0 到 1000 被“保留”)所以我不想推测什么如果这是在真实 PDP 上运行的真实指令,将会发生...... !!!系统陷阱?

    保重

    R

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-31
      • 2012-05-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-08
      • 2018-07-13
      • 1970-01-01
      相关资源
      最近更新 更多