我有一条指令:ADD [BX][SI] + 5FFDH, EABFH
我想知道它是如何在 8086 微处理器上运行的。我已经意识到这条指令ADD [BX][SI] + 5FFDH, EABFH
以这种方式工作:
- 2 个字节的数据从数据总线到达并进入指令队列。
- 指令队列中可用的数据进入指令解码器。
- 另外 2 个字节的数据从数据总线到达并进入指令队列。
- BX 和 SI 值进入 ALU 并计算
BX + SI
- 另外 2 个字节的数据从数据总线到达并进入指令队列。
BX + SI
转到 ALU 的输入。5FFDH
从指令队列中弹出并进入 ALU 的输入。- ALU 计算
BX + SI + 5FFDH
。 BX + SI + 5FFDH
通过地址总线进入内存。BX + SI + 5FFDH
的值来自内存并进入 ALU 的输入。EABFH
从指令队列中弹出并进入 ALU 的输入。[BX + SI + 5FFDH] + EABFH
通过 ALU 计算。- ??????????
所以我的问题是在第 13 步。微处理器如何知道内存地址 ( BX + SI + 5FFDH
)[BX + SI + 5FFDH] + EABFH
根据空指令队列将 的值发送到内存,我们无法BX + SI + 5FFDH
再次计算。