• Miércoles 6 de Noviembre de 2024, 00:51

Autor Tema:  Re: Calcular el tiempo en milisegundos  (Leído 6909 veces)

Agc

  • Nuevo Miembro
  • *
  • Mensajes: 11
    • Ver Perfil
Re: Calcular el tiempo en milisegundos
« en: Sábado 21 de Diciembre de 2002, 07:07 »
0
¿Cómo calculo el tiempo en milisegundos con ensamblador?

Mi problema es el siguiente: Debo calcular el tiempo que tarda un proceso en ejecutarse, pero debo calcularlo en milisegundos.

Para ensamblador utilizo el MASM 6.11 y un procesador pentium con windows (98,XP).

deldar

  • Miembro activo
  • **
  • Mensajes: 93
    • Ver Perfil
Re: Calcular el tiempo en milisegundos
« Respuesta #1 en: Sábado 21 de Diciembre de 2002, 13:57 »
0
Te recomiendo que tomes el contador del reloj de la bios antes y despues del proceso,despues podrás decodificarlo con la precision que quieras. mira el tema limite de tiempo en este foro. suerteB)
Quien de verdad sabe de qué habla, no encuentra razones para levantar la voz.

Agc

  • Nuevo Miembro
  • *
  • Mensajes: 11
    • Ver Perfil
Re: Calcular el tiempo en milisegundos
« Respuesta #2 en: Sábado 21 de Diciembre de 2002, 21:54 »
0
Gracias por tu respuesta.

Ok, ya chequé y encontré lo que me decías, el modo de como hacerlo ya lo tengo comprendido, lo que no se es como le haría, utilizaría variables para almacenar el clock counter, las horas, los minutos, los segundos y los milisegundos, pero si me pudieras dar un ejemplo te lo agradecería más.

deldar

  • Miembro activo
  • **
  • Mensajes: 93
    • Ver Perfil
Re: Calcular el tiempo en milisegundos
« Respuesta #3 en: Jueves 26 de Diciembre de 2002, 23:53 »
0
Si tomas los dos valores sin decodificar y los restas tendras la diferencia de tiempo en tics, despues lo decodificas y tendras el resultado.
Ya te mandaré el "proc" de la decodificacion en MASM 6.0B)
Quien de verdad sabe de qué habla, no encuentra razones para levantar la voz.

Agc

  • Nuevo Miembro
  • *
  • Mensajes: 11
    • Ver Perfil
Re: Calcular el tiempo en milisegundos
« Respuesta #4 en: Domingo 29 de Diciembre de 2002, 20:15 »
0
Gracias, te lo agradecería mucho.

Astor

  • Miembro MUY activo
  • ***
  • Mensajes: 112
    • Ver Perfil
Re: Calcular el tiempo en milisegundos
« Respuesta #5 en: Miércoles 5 de Febrero de 2003, 18:08 »
0
Yo en tu lugar utilizaria haria una ISR (rutina de atencion de interrupcion) y la colgaria de la INT 8 (IRQ 0) la cual interrumpe cada 55 ms. Como probablemente esa base sea muy grande para vos deberias reconfigurar el 8254 (en modo 3) y cargar el contador con una base menor (la base mas pequeña en este counter son 839 us).

Es la mejor solucion que hay, eso solo si estas haciendolo sobre DOS o algun OS en modo real.

deldar

  • Miembro activo
  • **
  • Mensajes: 93
    • Ver Perfil
Re: Calcular el tiempo en milisegundos
« Respuesta #6 en: Viernes 7 de Febrero de 2003, 00:21 »
0
La interrupcion 21h funcion 6Ch se ejecuta 18.2 veces por segundo lo que implica una posibilidad de actualizacion cada 54 milisegundos aprox. solo tendriamos que sustituir esa int pero eso no nos d un calculo de tiempoB)
Quien de verdad sabe de qué habla, no encuentra razones para levantar la voz.

Astor

  • Miembro MUY activo
  • ***
  • Mensajes: 112
    • Ver Perfil
Calcular el tiempo en milisegundos
« Respuesta #7 en: Sábado 8 de Febrero de 2003, 20:59 »
0
Se ejecuta 18.2 veces por segundo porque la cuenta cargada en el Timer0 del 8254 (colgado de la IRQ 0 del 8259) esta cargado con 0xFFFF . Si bajas ese numero conseguis bajar la base del timer.