Download Tesis - Dirección General de Servicios Telemáticos
Document related concepts
no text concepts found
Transcript
iniciando la subrutina de servicio de interrupción. b) La solicitud de interrupción se ignora hasta concluir la ejecución de la instrucción actual. Esto es necesario para poder detener la ejecución del programa normal y luego reanudarla de manera predecible, sin que se omitan instrucciones o se extravÃen datos intermedios. c) Se guarda el estado del programa actual. La rutina de servicio de interrupción usará los mismo registros de la CPU que el programa normal y, por tanto, el contenido de estos registros debe guardarse en la memoria antes de ejecutar la rutina de servicio de interrupción, ya que los registros se escribirán con otra información durante la ejecución de la rutina. Si no se efectúa este paso, al reanudar la ejecución del programa normal los registros contendrán datos distintos de los que existÃan al detener la ejecución y se generarán errores en el programa principal. d) Se ejecuta la subrutina de servicio de interrupción. Con esto generalmente se llevará a cabo la entrada o salida de datos relacionadas con el dispositivo que interrumpió. e) Al terminar la subrutina de servicio de interrupción se restaura el programa original, cargando de nuevo en los registros de la CPU los valores que existÃan al detener la ejecución del programa normal. f) La ejecución del programa normal se reanuda a partir de la instrucción que está inmediatamente después de la última instrucción que se completó antes de atender la interrupción. Retención de estado Este es un requisito idéntico al que se impone al llamar a una subrutina. Siempre que se ejecuta una subrutina de servicio de interrupción, es necesario guardar el contenido del contador a fin de poder, más tarde, reanudar la ejecución del programa normal en la instrucción correcta. Además, hay que guardar cualquier registro que se usa en la subrutina de servicio de interrupción para evitar que se corrompan los datos del programa normal.