Mode 8086 virtual

De Viquipèdia
Dreceres ràpides: navegació, cerca

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 bit s (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 | modifica el codi]

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 | modifica el codi]

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 | modifica el codi]