Ensamblador - Cronometro en assembler

 
Vista:

Cronometro en assembler

Publicado por Black_Hell (1 intervención) el 04/06/2007 04:19:30
Hola, tengo que hacer un cronómetro para un trabajo del instituto en esta semana en assembler, ya que la cosa que me pusiero de profesor vale champignon y nunca hace laboratorio. He averiguado sobre este tema y en la mayoría de los casos usan funciones de tiempo (timer ó temporizador) sacados del sistema. Pues bien, eso no me sirve ya que no me lo han pasado.
Sesupone que tendría que hacer algo como este raski charcha pseudo algoritmo:

1º-Sesupone que en el debug (que es donde tengo que programar, nada de macro assembler del mocosoft) tengo que ingresar los números en código ascii para que los interprete, es decir en vez de darle el valor 0, introducir el 48 (o algo así).
2º-Darle valores (comenzando por el 0 lógicamente) a 4 direcciones de memoria, por ejemplo, la dirección 200, 201, 203 y 204 tienen que inicializarse en 0 (ovbio; en la 202 tendrá que ir :).
3º-Darle por ejemplo, al Bh el valor de la dirección 204 (mov Bh,[0204]).
4º-Incrementar el valor de Bh (Inc Bh).
5º-Luego a la dirección 204 darle el nuevo valor de Bh (mov [0204],Bh, para que incremente en 1)
6º-Supuestamente en este momento tendría que darle el retardo de tiempo haciendo algo parecido a esto:
Mov Cx,0080
Mov Dx,FFFF
Dec Dx
Jnz (sesupone que acá el valor de memoria de Dec Dx)
Dec Cx
Jnz (sesupone que acá el valor de memoria de Mov Dx,FFFF)

7º-Sesupone que al principio me tiene que imprimir en pantalla todos los valores en 0 (00:00), ahora después de eso sesupone que tendría que imprimir 00:01.
8º-Ahora viene la condición, es decir, que los valores de la posición 204 vayan desde cero hasta 9, en el momento en que Bh sea igual a 57 (sesupone que a 9 en código ascii) aumente en uno el valor que se encuentra en la dirección de memoria 203 (es decir, que quede impreso 00:10).

Sino quedan claras mis dudas, las resumo: Realmente me está pescando en código ascci?, qué función utilizo para darle un valor directo a una dirección de memoria?, qué hago para que me imprima en pantalla el cronómetro sin que se cierre al segundo el ejecutable?, para hacer el ciclo, me conviene realmente hacerlo con loop?.

Si alguien tiene algún ejemplo de solamente un segundero de esta forma, entendría altiro, a las finales me estoy autodidactando por que mi profesor deja mucho que desear.
De antemano, mcuhas gracias y disculpen por extender tanto esto, quería ser lo más claro posible.
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