Te traemos el hallazgo a esta pregunta, o por lo menos eso pensamos. Si tienes alguna inquietud compártelo en un comentario, para nosotros será un gusto responderte
Solución:
Por lo general, el retorno de la interrupción restaura las banderas para que el código interrumpido pueda continuar ejecutándose correctamente. El retorno de la subrutina no necesita hacer que la instrucción se use intencionalmente en ese flujo de código y se sepa que las banderas se destruyen o no según la arquitectura. En arquitecturas que usan una pila para la dirección de retorno, es muy evidente. Un retorno de la interrupción hará estallar las banderas y luego la dirección de retorno donde un retorno de la subrutina hará estallar sólo la dirección de retorno.
Cuando ocurre una interrupción de hardware en un x86, las banderas y el segmento de código de retorno + desplazamiento se colocan en la pila. Entonces las interrupciones están deshabilitadas. Esto es para preparar el escenario para que la rutina de interrupción atienda la interrupción: cambie las pilas o lo que quiera hacer antes de volver a habilitar las interrupciones y procesar algunas más antes/o regresar de la interrupción. La instrucción iret muestra los indicadores guardados anteriormente (incluido el indicador de interrupción que se habilitó originalmente) y la ubicación de retorno para que la rutina interrumpida pueda continuar procesando sin darse cuenta.
Te mostramos las reseñas y valoraciones de los lectores
Te invitamos a añadir valor a nuestra información aportando tu experiencia en las críticas.