Mode 8086 virtual

(S'ha redirigit des de: Mode virtual x86)

Al microprocessador 80386 i posteriors, el mode 8086 virtual , també anomenat mode real virtual o VM86 , permet l'execució d'aplicacions de mode real que violen les normes sota control d'un sistema operatiu de mode protegit.

El VM86 feia servir la forma de segmentació del mode real, però feia servir l'adreça resultant de 20 bits (realment 21 bits), tractant-la com una adreça lineal, de tal mode que era subjecta a paginació.

Era usat per executar programes MS-DOS a Microsoft Windows/386, Windows 3.x, Windows 95, Windows 98, Windows Me, i OS/2 2.xi més endavant, a través de les màquines DOS virtuals, també en SCO UNIX a través de merge, i en Linux mitjançant dosemu.

Els programes de DOS de mode protegit, tant de 16 com de 32 bits, no s'executen en la mode 8086 virtual, sinó en mode usuari, sempre que fossin compatibles amb DPMI. Així que els emuladors dalt esmentats fan de fet més que només el suport per al mode 8.086 virtual.

Adreçament de la memòria modifica

El problema més habitual en córrer codi del 8086 des del mode protegit és l'adreçament de memòria que és totalment diferent entre el mode protegit i el mode real. Com esmentat, en treballar sota la mode VM86 el mecanisme de segmentació torna a treballar com en la mode real, però el mecanisme de paginació segueix estant actiu, i és transparent al codi de mode real, així la protecció de memòria és encara aplicable, i d'aquesta mode també ho és l'aïllament de l'espai d'adreces.

Interrupcions modifica

Quan les interrupcions tant de maquinari com de programari i instruccions inet passen, el processador es surt de la mode VM86 i retorna a treballar en el mode protegit per manejar la interrupció. I abans de servir la interrupció, els registres DS, ES, FS, i GS es guarden en el nou stack (amb Push) i es posen a zero.

Vegeu també modifica