Ensamblador - Problemas con assembler

 
Vista:

Problemas con assembler

Publicado por Anderson Martinez (1 intervención) el 05/02/2018 21:49:01
Buena tarde, tengo un taller de assembler con un punto que no logro desarrollar.
Pues no comprendo bien como es el procesos de las interrupciones.
Alguien me podría orientar por favor?

Muchas gracias

Ejercicio 5 ( Ex. Arq. De Comp. 25 de julio de 1997)


Se considera un edificio con un sistema anti-incendios controlado por un microprocesador 8086 dedicado a este propósito. El sistema está constituido por sensores de humo distribuidos en todo el edificio que comparten una línea de interrupción. Cuando un sensor detecta un determinado nivel de humo, genera una interrupción por nivel, atendida por la rutina HUMO. Cada sensor tiene asociada una luz en el tablero del guardia de seguridad y un difusor de agua. La luz debe encenderse cuando se produce una interrupción, y se debe abrir el difusor de agua si transcurren 30 segundos sin que se oprima un botón de reconocimiento de la alarma.
Esta acción debe además apagar la luz en el tablero de alarmas.
Se dispone de un timer de hardware que produce una interrupción cada 200 ms, atendida por la rutina TICK; cuando se oprime un botón de reconocimiento de alarma se produce una interrupción, atendida por la rutina ACK.
Cada grupo sensor-difusor-luz-botón tiene asociado un byte de control B_MANDO_n, donde n es el número de grupo. En total existen 10, alojándose consecutivamente a partir de la dirección de E/S 40H. Cada byte de control tiene la siguiente estructura:

Bit 0: reservado
Bit 1: en 1 si el sensor generó una interrupción, se pone en 0 por hardware al ser leído
Bit 2: se debe escribir en 1 para abrir el difusor de agua
Bits 3: se debe escribir en 1 para encender la luz de alarma, en 0 para apagarla.
Bits 4: se pone en 1 cuando se oprime el botón de reconocimiento, se pone en 0 por hardware al ser leído
Bit 5 al 7: reservados

Se pide:
 Programar en un lenguaje de alto nivel las rutinas necesarias para implementar el sistema.
 Compilar en assembler 8086.
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