06.10.2026 · Signal Titans Editorial
El techo hexadecimal: cómo MS-DOS atrapó a millones tras el límite de memoria de 640 kilobytes
Cuando IBM lanzó el PC en 1981, 640 kilobytes de memoria parecían colosales, pero los límites de MS-DOS crearon un obstáculo persistente.

En la dirección de memoria hexadecimal A0000 —el equivalente decimal 655 360—, el mapa de memoria interna de los primeros IBM Personal Computers topaba con un límite infranqueable. Cuando IBM lanzó el PC original en agosto de 1981, su microprocesador Intel 8088 contaba con un espacio de direccionamiento de 20 bits capaz de referenciar hasta 1 048 575 bytes, es decir, un megabyte de memoria total. IBM asignó los cinco octavos inferiores de ese espacio —640 kilobytes— a la memoria general para aplicaciones, reservando los tres octavos superiores para la ROM del sistema y el hardware de vídeo. Lo que comenzó como una asignación generosa se convirtió pronto en el cuello de botella más persistente de la informática personal. Según el historiador de la tecnología Jimmy Maher, esta línea divisoria condicionó durante años tanto a desarrolladores de software como a usuarios.
El diseño de la frontera de un megabyte
En agosto de 1981, ofrecer 640 kilobytes de memoria convencional supuso un enorme salto cualitativo frente a microordenadores competidores como el Apple II, que solía comercializarse con 48 kilobytes o menos. IBM concibió este mapa de memoria a partir del chip 8088 de Intel. Dado que una CPU debe asignar una dirección numérica exclusiva a cada byte de RAM o ROM al que accede, el bus de direcciones de 20 bits del 8088 limitaba de forma estricta la memoria total direccionable a 1 048 575 bytes. IBM asignó las aplicaciones de usuario a direcciones que comenzaban en cero y terminaban en el número decimal 655 360, o A0000 en hexadecimal. Los 384 kilobytes restantes, conocidos como memoria alta, se reservaron para búferes de pantalla de vídeo, código de sistema de bajo nivel y componentes de expansión de hardware.
Programación directa sobre el hardware y un sistema operativo provisional
El techo de 640 kilobytes se consolidó como una barrera permanente debido a la forma en que MS-DOS interactuaba con el hardware. Desarrollado a marchas forzadas para cumplir con el calendario de lanzamiento de IBM, las primeras versiones de MS-DOS solo ofrecían a los programadores 27 llamadas a funciones básicas, orientadas sobre todo a la gestión de archivos y discos. Al funcionar como un sistema operativo monotarea sin gestión de recursos ni capas de abstracción de hardware, MS-DOS incentivó a los desarrolladores a crear programas que omitían por completo las funciones del sistema operativo para manipular de manera directa los registros del hardware y las direcciones de memoria. Este planteamiento de programación directa sobre el hardware optimizaba al máximo la velocidad de ejecución, pero ató irremediablemente el software comercial a la distribución de memoria original del 8088.
El avance del hardware atrapado en el modo real
IBM intentó responder a las crecientes exigencias de memoria del software lanzando en 1984 el PC/AT, impulsado por el microprocesador 80286 de Intel. El 80286 contaba con un espacio de direccionamiento de 24 bits capaz de acceder a un máximo de 16 megabytes de memoria. Para dar soporte a la ejecución de software avanzado, Intel incorporó dos modos de funcionamiento: el modo protegido, que permitía la protección de memoria por hardware y el acceso a los 16 megabytes completos, y el modo real, que emulaba a los procesadores 8086 y 8088 originales. A fin de mantener una compatibilidad inmediata con el software de MS-DOS existente, Intel diseñó el 80286 para que se iniciara en modo real por defecto, conservando el límite de 1 megabyte a menos que un sistema operativo cambiara de modo de forma explícita.
La persistencia de los límites del modo real
Puesto que MS-DOS dependía de la ejecución en modo real para preservar la compatibilidad con el catálogo existente de programas empresariales, la memoria extendida en los sistemas 80286 permaneció desaprovechada en gran medida para la mayoría de los usuarios. Actualizar MS-DOS para admitir el modo protegido habría roto la compatibilidad con la inmensa biblioteca de software comercial que sustentaba el dominio de IBM en el mercado. En consecuencia, los usuarios que añadían tarjetas de memoria extendida a sus equipos 80286 seguían sin poder aprovechar esa RAM adicional en el software estándar, manteniendo a las aplicaciones atrapadas tras la frontera hexadecimal A0000.
Ilustración editorial generada con IA; no es una fotografía documental.
Fuente: The 640 K Barrier