Ensamblador - Funciones Residentes?

 
Vista:

Funciones Residentes?

Publicado por Fernando A. (2 intervenciones) el 04/07/2001 03:51:11
Necesito dejar residente en memoria una función, para que a determidadas horas realiza el chequeo de unos sensores de temperatura. Ya puedo realizar los chequeos de los sensores pero no puede hacer que el programa se ejecute automaticamene.
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:Funciones Residentes?

Publicado por Googol (61 intervenciones) el 04/07/2001 19:14:52
Bueno, supongo que hablas de MS-DOS...
Para dejar un programa residente, tienes que "finalizarlo" llamando a la interrupción 27h de MS-DOS, en lugar de de a la 4C DE LA iNT 21H.
Con eso consigues que el programa devuelva el control, (volverás al prompt), pero en realidad se ha quedado en memoria.
Luego necesitarás que el programa de vez en cuando haga algo. Para eso el programa tendrá que haberse colgado primero de alguna interripción, que salte de vez en cuando y de a tu programa la oportunidad de ejecutar su código.
En tu caso, tendrás que colgarlo de la interrupción 08h (la del reloj) que salta 18.2 veces por segundo. En el código que metas ahí puedes ir contando el número de veces que te llamen, o mirar la hora del sistema o algo parecido, para saber cuando te toca trabajar, y cuando simplemente tienes que dejar pasar la interrupción a su manejador original.

Puedes obtener información de esto, y de algunos trucos para que tu programa ocupe poco en memoria en el libro de Ciriaco García de Celis, Universo Digital del IBM PC o algo así, que está disponible por la red.
Suerte.
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:Funciones Residentes?

Publicado por drakorg (2 intervenciones) el 28/09/2001 08:40:40
en que entorno estas laburando?
si es windows, podes colgar el proceso que necesites del scheduler de windows ...
si es unix podes usar el cron
si es dos, ahi podrias dejar un residente que se cuelgue del timer y chequee constantemente la hora y si es el momento que vos queres ejecutas el codigo.
de todas, con el unico que tendrias que programar algo seria en DOS pq en el resto el tema de que a tal momento se ejecute algo ya esta listo para ser utilizado.

no se, cualquier cosa mandame un mail.
salutes
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