SoloCodigo
Programación General => ASM (Ensamblador) => Mensaje iniciado 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.
-
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.
-
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:
-
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
-
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.
-
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?
-
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
-
Hace una operacion binaria (or) entre un numero decimal y 030h que es equivalente a 48 osea '0'.