在PDP-11汇编器中寻址模式

时间:2010-06-06 19:04:42

标签: assembly addressing-mode pdp-11

我对pdp-11(模拟器)有一个小问题,我有这个命令 (它从地址1000开始) 加2500,#2500

和这个初始清单:

register/address - initial value
pc                 1000
sp                 600
2500               3000

我想知道这个小片段是如何运行的,在我的小册子中我发现: 首先它从地址1000读取信息,在我们从地址1002读取数字后,在这个地址中我们有值066727,并且值必须是2500(因为添加2500,#2500),但在我的小册子中我有1474没有任何解释为什么,我知道我在这里有相对寻址模式,但为什么1474在地址1002而不是2500,提前感谢任何帮助

3 个答案:

答案 0 :(得分:2)

如果你有:

    add     2500,#2500      ;add content of location 2500 to immediate value.

汇编的第一个字是指令,第二个是地址数据 对于第一个操作数(2500),第三个将是立即值2500。 第一个操作数的PC相对寻址模式将添加值 PC给定的值以获取操作数的地址。这将是不同的 在2500和PC之间(1474之间,在读取偏移量的增量之后)。

1004 + 1474 = 2500, the address of the data.

通常,人们会做:

    add     #2500,2500       ;add 2500 to the word at location 2500.

第一个例子将结果存储在指令流中。

答案 1 :(得分:0)

我不记得所有寻址模式,但请查看地址1474并查看它是否包含2500。

答案 2 :(得分:0)

ADD 2500,#2500

编译为

    0:      066727 ; ADD
    2:      002474 ; 2500 - 6 (next instruction offset)
    4:      002500 ; #2500 (literal value)
    6:      ...    ; next instruction
  ...
 2500:      003000