Ensamblador - Problemas con interrupciones

 
Vista:

Problemas con interrupciones

Publicado por Francisco Cortés (2 intervenciones) el 21/09/2002 22:12:14
He intentado desviar la interrupción del puerto serie (IRQ3 ó IRQ4 , según sea COM2 ó COM1) a mi propia rutina de interrupción. He habilitado todas las interrupciones en el registro IER de la UART 16550, pero mi programa no pasa por la rutina cuando se dan las condiciones necesarias para una interrupción. Cuando fuerzo la interrupción mediante la orden "int 0Bh" sí pasa por la rutina, lo que me induce a pensar que el vector de interrupción sí se ha cambiado bien, pero que puede haber algún registro de algún dispositivo que esté enmascarando dicha interrupción. Agradecería que alguien me dijera qué debo hacer para que el programa funcione bien.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Problemas con interrupciones

Publicado por Googol (61 intervenciones) el 26/09/2002 14:31:03
¿Está Windows por debajo, y el programa en una ventana MS-DOS? Tal vez sea eso...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problemas con ... - Ya lo intenté en MSDOS

Publicado por Francisco Cortés (2 intervenciones) el 26/09/2002 20:22:28
Ya he probado a ejecutarlo sólo bajo MS-DOS sin que intervenga Windows, y lo que ocurre es que muchas veces se queda colgado el ordenador.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problemas con ... - Ya lo intenté en MSDOS

Publicado por Googol (61 intervenciones) el 28/09/2002 12:57:49
Bueno, entonces tal vez Windows sí tenga algo que ver, al fin y al cabo.
¿Sabes si en MS-DOS se llama realmente a la interrupción? Para saberlo tal vez no deberías llamar al MS-DOS para escribir una cadena, si en el programa principal (fuera de la IRQ) estás también llamando a la int 21h (el MS-DOS no es "reentrante").
Quien sabe, quizá sea esa la razón por la que se te cuelga...
También podrías probar probar a ejecutarlo en MS-DOS, pero metiendo un simple IRET en la rutina de interrupción, para ver si no se te cuelga.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar