我目前正在尝试解决给定以下标准的问题:
我相信我的一些答案是正确的,但我很困惑,因为这个问题没有提到存储在地址 10 的地址,那么间接寻址怎么会发生呢?
问题:给定以下寻址模式,对应的操作数在哪里?
假设一条指令的地址字段包含十进制 10。给定以下寻址模式,对应的操作数在哪里?
- 立即寻址:操作数 - 10
- 直接寻址:操作数 - 10 -> 地址
- 间接寻址:10 -> 地址 -> 地址
- 寄存器寻址:
- 寄存器间接寻址:
有人可以帮帮我吗?
这是我正在使用的图表:
更新地点:
立即寻址:对应的操作数位于给定内存的地址字段中。在所有情况下,操作数只是给定内存位置的地址字段中的值。所以在这种情况下,操作数的值为 10。
直接寻址:在直接寻址中,地址字段包含操作数的地址。因此,相应的操作数将是存储在内存地址 10 的操作数的任何内容。
间接寻址:在间接寻址中,内存地址 10 的内容是操作数的地址。因此,位置 10 的地址字段包含指向在其地址字段中保存操作数的位置的地址。
寄存器寻址:在寄存器寻址中,存储器位置 10 的地址字段保存一个寄存器地址,而不是另一个存储器地址。相应的操作数在寄存器的内容中找到。
寄存器间接寻址:寄存器间接寻址与寄存器寻址非常相似,因为内存位置 10 也保存了指向包含其操作数的位置的地址;不同之处在于地址可以是寄存器或内存位置。