Ensamblador - reloj,dia,mes i año residente

 
Vista:

reloj,dia,mes i año residente

Publicado por bobo_Mx (1 intervención) el 12/05/2004 12:47:40
como puedo programar en ASM el dia, mes i año de forma residente??
lo que es la parte del reloj la tengo hecha, pero esto otro.....ni idea
gracias
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:reloj,dia,mes i año residente

Publicado por Mariano Cerdeiro (5 intervenciones) el 13/05/2004 23:10:03
Buenas, supongo que referis en DOS, sino no seria residente...

Bueno lo que debes hacer es modificar la tabla de interrupciones de modo real, la cual esta a partir del 0000:0000 cada entrada de int ocupa 4 bytes, 2 de offset 2 de segmento, si queres hacer un programa residente debes colgarte de alguna interrupcion, por ejemplo la int8 que es la irq0 que se ejecuta 18.2 veces por segundo en el DOS...

Lo que haces es apuntar estos 4 bytes de la tabla de interrupciones de la posicion 8 a tu rutina y luego saltas a los 4 bytes que LEISTE de la tabla de interrupciones, para que el DOS tambien reciba la int8...

Al regresara a modo real debes hacerlo con la int 21h pero no con el servidio 4ch ya que este libera tu memoria, debes

--------D-2131-------------------------------
INT 21 - DOS 2+ - TERMINATE AND STAY RESIDENT
AH = 31h
AL = return code
DX = number of paragraphs to keep resident
Return: never
Notes: the value in DX only affects the memory block containing the PSP;
additional memory allocated via AH=48h is not affected
the minimum number of paragraphs which will remain resident is 11h
for DOS 2.x and 06h for DOS 3.0+
most TSRs can save some memory by releasing their environment block
before terminating (see #01378 at AH=26h,AH=49h)
any open files remain open, so one should close any files which will
not be used before going resident; to access a file which is left
open from the TSR, one must switch PSP segments first (see AH=50h)
SeeAlso: AH=00h,AH=4Ch,AH=4Dh,INT 20,INT 22,I
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