Modos de operación del procesador 8086: Real, Protegido, V86, SMM

Cuatro modos de la línea 8086/80286/80386+

El 8086 solo corre en Modo Real. Sus sucesores añadieron modos; el 80386+ soporta los cuatro. Entenderlos clarifica la evolución x86.

1. Modo Real (8086 nativo)

  • Direccionamiento: 20-bit (segmento:desplazamiento → física = segmento×16 + desplazamiento). Límite 1 MB.
  • Registros: 16-bit (AX, BX, CX, DX, SI, DI, BP, SP, IP, FLAGS, CS, DS, ES, SS).
  • Protección: Ninguna. Cualquier código accede cualquier memoria, E/S, interrupción.
  • Uso: DOS, BIOS, bootloaders, OSes 16-bit. Por defecto en reset.

2. Modo Protegido (80286+)

  • Direccionamiento: 24-bit (286) → 32-bit (386+) direcciones lineales vía tablas descriptores (GDT/LDT/IDT).
  • Segmentación: Segmentos tienen base, límite, privilegio (DPL 0–3), tipo (código/datos/sistema).
  • Paginación (386+): Páginas 4 KB, CR3 directorio páginas, memoria virtual, paginación bajo demanda.
  • Anillos privilegio: Anillo 0 (kernel), Anillo 3 (usuario). Enforcement hardware.
  • Multitarea: Cambio tarea hardware (TSS) o scheduler software.
  • Entrada: PE=1 en CR0 (386) / MSW (286); carga GDT, IDT, salto lejos para flush pipeline.

3. Modo Virtual 8086 (V86) (386+)

  • Concepto: Múltiples "máquinas virtuales" Modo Real dentro de Modo Protegido.
  • Cada tarea V86: Obtiene su propio espacio direcciones virtual 1 MB, IVT virtual, hardware virtual.
  • Trapping: Instrucciones privilegiadas (CLI, STI, IN, OUT, INT) trapan a Anillo 0 monitor (VMM/host DPMI).
  • Uso: Cajas DOS en Windows 3.x/9x/NTVDM, DOSEMU, EMM386.

4. Modo Gestión Sistema (SMM) (386 SL / 486+)

  • Disparador: Pin SMI# (hardware) o trampa E/S SMI.
  • Contexto: Guarda estado CPU completo en SMRAM (memoria oculta).
  • Código: Handler SMI BIOS/UEFI — gestión energía, térmico, control hardware, actualizaciones firmware.
  • Transparente: Invisible a OS/apps; retorna vía RSM.

Resumen transiciones modo

De → AMecanismoDisparador típico
Reset → RealHardwarePower-on / RESET#
Real → ProtegidoSoftware (PE=1 + salto lejos)Bootloader OS (Linux, Windows)
Protegido → V86Cambio tarea a TSS V86Host DPMI / NTVDM
Cualquiera → SMMHardware SMI#Térmico, botón power, USB legacy
SMM → AnteriorInstrucción RSMSalida handler SMI

El x86-64 moderno añade Modo Largo (64-bit) con sub-modos compatibilidad/legacy — pero los cuatro arriba siguen siendo la base arquitectónica.