next up previous contents
Next: Instrucciones Adicionales Sensitivas a Up: Entrando y Saliendo del Previous: Transiciones a través del

Transición a través de entradas atrapadas o interrumpidas

El i486 abandona el modo virtual 8086 como resultado de una interrupción o excepción la cual llama a una trampa o entrada de interrupción. El manejador de interrupción o excepción regresa al programa 8086 cuando ejecuta la instrucción IRET.

Un programa 8086 en una tarea virtual 8086 tiene una tabla de interrupciones al estilo 8086 que inicia en la dirección 0, debido a que se ha diseñado para correr sobre un procesador 8086. Para todas la interrupciones y excepciones que ocurran en el modo virtual 8086, el procesador llama a los manejadores a traves de IDT2.17. La entrada IDT para una interrupción o excepción de una tarea virtual 8086 debe tener los siguientes datos:

Un manejador de interrupción pasa el control al monitor virtual 8086 si está encendida la bandera VM, del registro EFLAGS almacenado en la pila, y si la interrupción o excepción necesita ser manejada por el monitor. El monitor virtual 8086 puede seleccionar el manejo de la interrupción en el monitor virtual, o llamar al manejador de interrupción del programa.

Enviar una interrupción o excepción al programa 8086 involucra los siguientes pasos:

1.
Utilizar el vector de interrupciones 8086 para localizar el procedimiento adecuado.

2.
Guardar el estado del programa 8086 en la pila del nivel de privilegio 3 (mínimo privilegio).

3.
Ejecutar la instrucción IRET para pasar el control al manejador.

4.
Cuando la instrucción IRET, del manejador de privilegio 3, llama nuevamente al monitor virtual 8086, restaura la liga de regreso, en la pila del nivel de privilegio 0, apuntando al procedimiento interrumpido original del nivel de preferencias 3.

5.
Ejecuta una instrucción IRET para pasar el control al procedimiento interrumpido.


next up previous contents
Next: Instrucciones Adicionales Sensitivas a Up: Entrando y Saliendo del Previous: Transiciones a través del
Amilcar Meneses
2002-10-03