【问题标题】:Addressing Modes in PDP-11 AssemblerPDP-11 汇编器中的寻址模式
【发布时间】:2010-06-06 19:04:41
【问题描述】:

我有关于 pdp-11(模拟器)的小问题,我有这个命令 (从地址 1000 开始) 添加 2500, #2500

还有这个初始列表:

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

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

【问题讨论】:

    标签: assembly addressing-mode pdp-11


    【解决方案1】:

    如果你有:

        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.
    

    作为第一个示例,将结果存储在指令流中。

    【讨论】:

      【解决方案2】:
      ADD 2500,#2500
      

      编译为

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2020-01-16
          • 2014-09-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多