For an addressing mode with a displacement "ADD AX,[SI+1234]", a few more lines of microcode fetch the displacement bytes (e.g. 1234) from the instruction prefetch queue (Q), put them in tmpB, and add them to the SI value.
Top-level
For an addressing mode with a displacement "ADD AX,[SI+1234]", a few more lines of microcode fetch the displacement bytes (e.g. 1234) from the instruction prefetch queue (Q), put them in tmpB, and add them to the SI value. 3 comments
Microcode is very low level and pretty tricky, but hopefully this brief Mastodon explanation makes some sense. For a more detailed look at microcode, see my blog post: https://www.righto.com/2023/02/8086-modrm-addressing.html Thanks to Andrew Jenner for disassembling the 8086 microcode. |
The 8086 chip squeezed a lot of functionality into just 512 words of microcode, making hardware take care of details. The die photo shows these functional blocks on the die. Microcode takes a large area but even registers (like M and N) use a substantial area of the silicon.