PDP-11中的寻址模式

时间:2012-12-10 00:38:19

标签: assembly pdp-11 addressing-mode

我有这个指示:

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

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

对我来说看起来像PDP-11代码... @ -4(PC)意味着'将程序计数器的内容减少4给你一个地址......而'@'意味着取内容地址。因此,如果PC是1000,你从它中减去4(八进制)给你774然后你在内部地址774看内容(这就是'@'的含义)。得到这个值 - SOURCE操作数然后我们必须把它放在某个地方,即DESTINATION地址。转到R5(通用寄存器5)并在那里查找地址。将766八进制数添加到该地址,您就拥有DESTINATION地址(无论可能是什么)。

然后,PDP-11s CPU可以将SOURCE移动到DESTINATIOn,因为它现在具有这两者。 (它的MOV指令不是MOVe - 如果我的记忆正确地为我提供了所有PDP指令,那么所有的PDP指令都是3个字母的助记符 - 或者至少大部分都是如此)

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

小心

[R