El procesador 8086 de Intel podía direccionar 1 MB de memoria, una cifra enorme frente a los 64 KB del 8080. Para lograrlo sin cambiar los registros de 16 bits, Intel añadió registros de segmento cuyo valor se desplazaba cuatro bits y se sumaba a un desplazamiento de 16 bits, generando así direcciones de 20 bits. El artículo explica que esta arquitectura no fue un capricho, sino una decisión deliberada para mantener la compatibilidad con el código del 8080, dominante en la era de CP/M: bastaba con apuntar todos los registros de segmento a un mismo bloque de 64 KB para que los programas existentes funcionaran sin reescribirlos.
El diseño original concebía los segmentos como selectores opacos, identificadores de bloques de 64 KB manejados por el sistema operativo, no como simples direcciones. Sin embargo, los programadores descubrieron que los segmentos se solapaban cada 16 bytes y empezaron a usarlos como los 16 bits altos de una dirección casi plana. Esa práctica se generalizó hasta el punto de que el 80286 no pudo modificar el solapamiento sin romper todo el software existente, lo que obligó a introducir el modo protegido y, más tarde, el modo virtual 8086 del 80386 para escapar del límite de 1 MB.
El autor reflexiona sobre qué habría hecho falta para que la segmentación sobreviviera: tratar los segmentos como manejadores opacos sin aritmética asociada, algo inviable en una época con recursos tan limitados. Como conclusión, señala que la arquitectura del 8086 es una lección valiosa sobre cómo las expectativas del software pueden limitar la evolución del hardware durante décadas, y adelanta que su proyecto Hearthfire, un ordenador hipotético de los años 80, no adoptará esta segmentación.
