SoloCodigo

Programación General => ASM (Ensamblador) => Mensaje iniciado por: © Jonathan © en Martes 14 de Octubre de 2003, 15:16

Título: Re: como hacer un temporizador
Publicado por: © Jonathan © en Martes 14 de Octubre de 2003, 15:16
Hola, como puedo hacer para realizar un temporizador en microsegundos, mi idea es ya que en C no hay una posibilidad, es realizarlo en assembler y adaptarlo a mi fuente. Espero puedan ayudarme, Gracias y Saludos.
Título: Re: como hacer un temporizador
Publicado por: Super_G en Miércoles 15 de Octubre de 2003, 06:13
La verdad no creo poder ayudarte ya que eso es algo que busque muchas veces, lo mejor(a mi parecer) seria estudiar a fondo el temporizador harware del ordenador y trabajar con la frecuencia de reloj, pero no parece ser tan facil, puedes buscar en la red sobre este tama y talves encuentres algo hecho, lo mejor que tengo seria capturar la hora actual del ordenador que te da las horas, minutos, segundos y centecimas de segundos mediante una interrupcion y trabajar con las centecimas de segundo:
la interrupcion es:
      mov ah,2ch
      int 21h
;*******
las centecimas estarian en DL.
Título: Re: como hacer un temporizador
Publicado por: Logan en Miércoles 15 de Octubre de 2003, 16:29
Yo he estado tratando de trabajar con esas instrucciones, pero los valores que se devuelven de la función 2ch INT 21h y almacenan en los registros AL,DL,etc estan en binario no es asi?... creo que se tienen que convertir a ASCII para poder mostrarse en pantalla. al convertir estos datos en ASCII he tenido problemas, si lo resuelvo antes pongo el codigo, si Super_G tienes una solucion te agradeceré tu ayuda.  
:question:
Título: Re: como hacer un temporizador
Publicado por: © Jonathan © en Jueves 16 de Octubre de 2003, 00:38
Gracias por las respuestas, buscare informacion acerca de lo que me dices Super_G, agradesco infinitamente. Si encuentro algo que les sirva a ustedes les comento. Saludos
Título: Re: como hacer un temporizador
Publicado por: Super_G en Jueves 16 de Octubre de 2003, 05:06
Que tipo de problemas seran?
bueno supongamos que ya tengo el dato en DL las centecimas de segundo entonces si son centecimas maxio sera de dos digitos tomado esto encuenta pongo el siguiente programa:
;;**********************
              mov al,dl; en DL las centecimas
              xor ah,ah ; saparamos las
              mov bl,10 ;unidades
              div bl         ; de la decenas
              or ax,3030h ;CNV a ASCII
              mov bl,ah ; salvamos las unidade
              mov ah,2  
              int 21h     ;muestra decenas
              mov al,bl  
              int 21h     ;muestra unidades
;;****************
espero el programa funcione, no le hice pruebas, si ese no era el problema, porfavor especificamelo.
Título: como hacer un temporizador
Publicado por: Super_G en Jueves 16 de Octubre de 2003, 05:32
Es cierto que no se puede hacer un temporizador en C?
la funcion DELAY(X), no hace un buen retrazo en Xmilisegundos?, que problemas existen con esto?
Título: Re: como hacer un temporizador
Publicado por: angdc2000 en Miércoles 29 de Marzo de 2006, 22:25
disculpa super g, me podrias explicar que es lo que hace esta linea de codigo por que no la entiendo.

or ax,3030h ;CNV a ASCII
Título: Re: como hacer un temporizador
Publicado por: Eternal Idol en Miércoles 29 de Marzo de 2006, 23:12
Hace una operacion binaria (or) entre un numero decimal y 030h que es equivalente a 48 osea '0'.