La Web del Programador: Comunidad de Programadores
 
    Pregunta:  55899 - COMO CE MANDA A PANTALLA LA HORA DEL SISTEMA EN ENSAMBLADOR
Autor:  cristian sanchez mendoza
de que para leer la hora de utiliza la instruccion

mov ah,2ch
y esta la guarda el ch= hora
en cl= minutos

pero como extraigo esa informacion para mandarla a pantalla

  Respuesta:  yerko chapanoff
Hola, lo que tienes que hacer es utilizar la interrupcion 21/02 para imprimir un caracter a pantalla, en rigor lo que hace esta instrucción es escribir el caracter de la tabla ascii equivalente al valor hexa que tengas cargado en el registro. Ahora el detalle es que la instrucción que indicas para rescatar la hora, entrega la hora y minutos pero en Hexa, por lo tanto, para poder utilizar la instrucción 21/02 hay que pasar cada dígito al valor hexa que corresponda al caracter visual que queremos imprimir. Para esto, lo primero es tomar la hora, que es un dato de 2 digitos y separarlo en 2 digitos, para luego transformar cada uno al valor hexa que corresponda al número. Para separar el número en 2 dígitos, lo divides por 10 (A en Hexa) y con eso en el cuociente te quedarán la decena y en el resto te quedarán las unidades. Ahora ya tienes separado el número en 2 dígitos, pero aún siguen siendo hexas, ahora lo que se hace para poder imprimir por pantalla el equivalente ascii, se le debe sumar 30H a cada dígito, o sea, suponiendo que tienes cargado el 5H en DL, haces ADD DL, 30H (quedará DL=35h) y luego MOV AH, 02H y luego INT 21, lo cual imprimirá el caracter equivalente al 35H en la tabla ascii que si revisas verás que es justamente el caracter "5". De la misma forma lo haces para los otros dígitos.

Espero te sirva.
saludos!
Yerko Chapanoff