@santiago The 80186, 80286, Pentium, etc. are improvements to the 8086, adding more instructions and features and lots more transistors but keeping binary compatibility. Modern x86 chips can still run 8086 code (but only in virtual real mode).
The 8086 processor uses microcode, implementing most machine instructions through a sequence of simpler micro-instructions. These micro-instructions can use the M and N registers to access registers specified in the instruction. This microcode exchanges two registers.
Instructions for the 8086 processor specify registers through 3 bits in the opcode or following byte. This is expanded to a 5-bit code to support 16-bit registers (red), 8-bit registers (blue), segment registers (green), and special internal registers.
Each micro-instruction includes a register move between a source and destination register. The micro-instruction can specify the 5-bit code directly, or use the M and N registers for indirection. This way, microcode doesn't need to know which registers an instruction specifies.
Intel introduced the 8086 microprocessor in 1978 and it still has a huge influence through the modern x86 architecture used today. This 16-bit processor contains a bunch of registers, some of them hidden. I reverse-engineered the 5-bit code that it uses to select registers. 🧵
The Globus INK (1967) is a remarkable piece of Soviet spacecraft equipment. Its rotating globe showed cosmonauts the position of their Soyuz spacecraft. An electromechanical analog computer, it used gears, cams, and differentials to compute the position. Let's look inside 🧵
The Intel 8086 was released in 1978, starting the x86 line that still dominates computing. I'm reverse-engineering the chip by studying the silicon die, and I think I've spotted a bug fix in the silicon. They didn't have microcode updates then so they patched the silicon. 🧵