How the 8086 processor's microcode engine works

#108 · 🔥 246 · 💬 81 · one year ago · www.righto.com · picture · 📷
I've been reverse-engineering the 8086 from die photos and this blog post discusses how the chip's microcode engine operated. Instead, I'll look at how the 8086 decides what microcode to run, steps through the microcode, handles jumps and calls inside the microcode, and physically stores the microcode. The microcode engine has a 13-bit register that steps through the microcode, along with a 13-bit subroutine register to store the return address for microcode subroutine calls. The microcode engine is assisted by two smaller ROMs: the "Group Decode ROM" to categorize machine instructions, and the "Translation ROM" to branch to microcode subroutines for address calculation and other roles. The 8086 uses a clever mapping from the machine instruction to a microcode address that allows machine instructions to share microcode. You can't share microcode since each instruction has a different address in the microcode ROM. The 8086 solves these problems in two ways. The heart of the microcode engine is the microcode address register, which determines which microcode address to execute.
How the 8086 processor's microcode engine works



Send Feedback | WebAssembly Version (beta)