Ensamblador - Como puedo hacer una pausa de tiempo?

 
Vista:

Como puedo hacer una pausa de tiempo?

Publicado por William (1 intervención) el 26/10/2001 02:24:19
Estoy llevando la materia en la escuela y me gustaria hacer una pausa antes de desplegar un mensaje, pero no se como realizar una pausa, no se nada del manejo de tiempo, si alguien puede ayudarme le agradeceria.
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:Como puedo hacer una pausa de tiempo?

Publicado por knot (25 intervenciones) el 03/11/2001 22:00:08
Hola.

Este codigo realiza una pausa hasta que presiones una tecla, su funcionamiento es el siguiente :

- borra todas las teclas pendientes del buffer del teclado
- espera a que se presione una tecla

BuffKeyCheck:
mov ah, 11h
int 16h
jz BuffKeyEmpty
mov ah, 10h
int 16h
jmp BuffKeyCheck

BuffKeyEmpty:
mov ah, 10h
int 16h

; aqui puedes colocar lo que quieres que se ejecute despues
; de la pausa

Un Saludo.

knot
Osorno - Chile.
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:Como puedo hacer una pausa de tiempo?

Publicado por carlos eduardo (1 intervención) el 02/03/2009 00:08:42
como hacer pausa en el tiempo y reanudarlo en 5 horas
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

Sencillo Mira...

Publicado por CX-Rom (8 intervenciones) el 13/11/2001 03:18:09
Mira es sencillo realizar una pausa o mas bien hacer que el prosesador se distraiga por un rato mira una forma muy util de hacer esto es mandando al procesador a un programa de tiempo mira te voy a poner un ejemplo en un procesador Z80 a 3.5Mhz.
Este ejemplo se trata de distraes al prosesador un rato antes de seguir con lo que yo quiero por ejemplo tengamos en cuanta que el puerto 01 es un display

0000h:
LD A,#39 // Cargamos al acumulador 39 que corresponde a una letra
CALL $0100 // llamamos al programa de tiempo
OUT(P01) // Enviamos al display el dato

0100h:
EXX // Llamamos registros secundarios
LD B,#FF // Cargamos a B con FF
LD C,#FF <------2 // Cargamos a C con FF
DEC C <----------1 // decrementamos a C
JPNZ ------------>1 // si c no es cero vuelvelo a decrementar
DEC B // decrementa b
JPNZ ------------>2 // salta a cargar a c con ff si c no es cero
EXX // recupera registros originales
RET // regresa de la rutina a la ultima istruccion es saca dato a display

Vez lo facil que es no presisamente puse en pausa al prosesador si no que lo puse ha realizar una rutina de perdida de tiempo y su funcionamiento es muy sencillo cargo dos registros secundarios o primos cuando decremento al primero pasa a decrementa una vez al segundo y vuelve a cargar con ff al primero y se repite un ciclo que hace perder tiempo al procesador pero ten en cuenta que este procesador es de 3.5Mhz en un procesador de mas de 500Mhz esta operacion la haria en milesimas de segundo ten en cuenta sus registros y en proporcion.

Espero que te pueda ayudar si tienes otra duda solo mandame una mail

CX-Rom
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