间接寻址模式

时间:2015-04-30 04:15:28

标签: architecture mode operand addressing

我目前正在尝试解决一个问题,我给出了这些标准:

我相信我的答案是正确的,但我感到困惑,因为问题没有提到地址存储在地址10,所以间接寻址怎么可能发生呢?

问题:给定以下寻址模式的相应操作数在哪里?

  

假设指令的地址字段包含小数10。   给出以下寻址的相应操作数在哪里   模式?

  1. 立即寻址:操作数-10
  2. 直接寻址:操作数 - 10 - >解决
  3. 间接寻址:10 - >地址 - >解决
  4. 注册寻址:
  5. 注册间接寻址:
  6. 有人可以帮帮我吗?

    这是我使用的图表: enter image description here

    更新了哪里:

    • 立即寻址:相应的操作数位于给定内存的地址字段中。在所有情况下,操作数只是给定内存位置的地址字段中的值。因此,在这种情况下,操作数值将为10.

    • 直接寻址:在直接寻址中,地址字段包含操作数的地址。因此,相应的操作数将是为存储器地址10处的操作数存储的任何操作数。

    • 间接寻址:在间接寻址中,存储器地址10的内容是操作数的地址。因此,位置10的地址字段包含保存操作数的位置的地址。

    • 寄存器寻址:在寄存器寻址中,存储器位置10的地址字段保存寄存器的地址而不是另一个存储器地址。相应的操作数位于寄存器的内容中。

    • 寄存器间接寻址:寄存器间接寻址与寄存器寻址非常相似,因为存储器位置10也将地址保存到包含其操作数的位置;区别在于地址可以是寄存器或存储位置。

1 个答案:

答案 0 :(得分:0)

出于问题的目的,假设地址 存储在内存位置10.毕竟,这就是真正的CPU所做的事情。如果地址证明无效,CPU可能会发送信号或终止违规过程。

假设记忆包含:

10: 100
20: 200
100: 1000

并且注册#10包含:20

答案是:

  1. 10:操作数包含在指令本身中。
  2. 100
  3. 1000
  4. 20:寄存器本身包含操作数。寄存器编号在指令中编码。
  5. 200:寄存器包含操作数的地址。