I have a instruction: ADD [BX][SI] + 5FFDH, EABFH
and I want to know how it operates exactly on 8086 microprocessors. I've realized that this instruction ADD [BX][SI] + 5FFDH, EABFH
, works in this manner:
- 2 bytes of data arrive from data bus and go to instruction queue.
- Data that available on instruction queue goes to instruction decoder.
- Another 2 bytes of data arrive from data bus and go to instruction queue.
- BX and SI values go to ALU and calculates
BX + SI
- Another 2 bytes of data arrive from data bus and go to instruction queue.
BX + SI
goes to ALU's input.5FFDH
pop from instruction queue and goes to ALU's input.- ALU calculates
BX + SI + 5FFDH
. BX + SI + 5FFDH
goes to memory through address bus.BX + SI + 5FFDH
's value comes from memory and goes to ALU's input.EABFH
pop from instruction queue and goes to ALU's input.[BX + SI + 5FFDH] + EABFH
calculates by ALU.- ???????????
So my question is on step 13. How microprocessor knows that memory address (BX + SI + 5FFDH
) to send [BX + SI + 5FFDH] + EABFH
's value to memory according to empty instruction queue and we cannot calculate BX + SI + 5FFDH
again.