2. En el microprocesador
80386 y posteriores, el
modo 8086 virtual,
también llamado modo
real virtual o VM86,
permite la ejecución de
aplicaciones de modo
real que violan las
reglas bajo control de
un sistema operativo de
modo protegido.
3. El VM86 usaba la forma de
segmentación del modo real,
pero usaba la dirección resultante
de 20 bits (realmente 21 bits),
tratándola como una dirección
lineal, de tal manera que era
sujeta a paginación.
4. Era usado para ejecutar programas DOS en
Microsoft Windows/386, Windows 3.x, Windows
95, Windows 98, Windows Me, y OS/2 2.x y más
adelante, a través de las máquinas DOS
virtuales, también en SCO UNIX a través de
Merge, y en Linux por medio de dosemu.
Los programas de DOS de modo protegido,
tanto de 16 como de 32 bits, no se ejecutan en el
modo 8086 virtual, sino en modo usuario,
siempre y cuando fueran compatibles con DPMI.
Así que los emuladores arriba mencionados
hacen de hecho más que solo el soporte para el
modo 8086 virtual.
5. El problema más común al correr código del
8086 desde el modo protegido es el
direccionamiento de memoria que es
totalmente diferente entre el modo protegido y
el modo real. Según lo mencionado, al trabajar
bajo el modo VM86 el mecanismo de
segmentación vuelve a trabajar como en el
modo real, pero el mecanismo de paginación
sigue estando activo, y es transparente al código
de modo real, así la protección de memoria es
todavía aplicable, y de esa manera también lo es
el aislamiento del espacio de direcciones.
6. Interrupciones
Cuando las interrupciones tanto de
hardware como de software e
instrucciones inet ocurren, el
procesador se sale del modo VM86 y
retorna a trabajar en el modo
protegido para manejar la
interrupción. Y antes de servir la
interrupción, los registros DS, ES, FS,
y GS se guardan en el nuevo stack
(con Push) y se ponen a cero.