programa de reloj

ary
22 de Junio del 2004
hola como le puedo hacer en ensamblador para simular el funcionamiento de un reloj pero que solo maneje los minutos y seguntos porfavor si alguien me puede ayudar se lo agradeceria bye

alanis_1978
22 de Junio del 2004
porfa necesito elcodigo de un reloj digital que se ingresa los datos por consola si alguien tiene algo que me lo pase a este correo [email protected]

KURT
22 de Junio del 2004
oye te envio este que muestra la fecha y hora puedes modificarlo



DISP MACRO CHAR
PUSH AX
PUSH DX
MOV DL,CHAR
MOV AH,2
INT 21H
POP DX
POP AX
ENDM


STACK SEGMENT PARA STACK
DB 1024 DUP ("_")
STACK ENDS
DATOS SEGMENT
DTAB DW SUN,MON,TUE,WED,THU,FRI,SAT

MTAB DW JAN,FEB,MAR,APR,MAY,JUN
DW JUL,AUG,SEP,OCT,NOV,DEC

SUN DB "SUNDAY","$"
MON DB "MONDAY","$"
TUE DB "TUESDAY","$"
WED DB "WEDNESDAY","$"
THU DB "THURSDAY","$"
FRI DB "FRIDAY","$"
SAT DB "SATURDAY","$"
JAN DB "JANUARY","$"
FEB DB "FEBRUARY","$"
MAR DB "MARCH","$"
APR DB "APRIL","$"
MAY DB "MAY","$"
JUN DB "JUNE","$"
JUL DB "JULY","$"
AUG DB "AUGUST","$"
SEP DB "SEPTEMBER","$"
OCT DB "OCTOBER","$"
NOV DB "NOVEMBER","$"
DEC DB "DECEMBER","$"
DATOS ENDS
CODIGO SEGMENT
ASSUME CS:CODIGO,DS:DATOS,SS:STACK
PRINCIPAL PROC FAR
PUSH DS
SUB AX,AX
PUSH AX
MOV AX,DATOS
MOV DS,AX
CALL TIMES ;DESPLIEGA HORA
CALL DATES ;DESPLIEGA FECHA
RET
PRINCIPAL ENDP
TIMES PROC NEAR
MOV AH,2CH ;OBTIENE HORA DEL DOS
INT 21H
MOV BH,"A"
CMP CH,12
JB TIMES1

MOV BH,"P"
SUB CH,12

TIMES1:
OR CH,CH
JNE TIMES2
MOV CH,12
TIMES2:
MOV AL,CH
MOV AH,0
AAM ;CONVIERTE A HORAS
OR AH,AH
JZ TIMES3
ADD AH,"0"
DISP AH
TIMES3:
ADD AL,"0"
DISP AL
DISP ":"
MOV AL,CL
MOV AH,0
AAM ;CONVIERTE MINUTOS
MOV AX,3030H
PUSH AX
DISP AH
POP AX
DISP AL
DISP " "
DISP BH
DISP "."
DISP "M"
DISP "."
DISP " "
RET
TIMES ENDP


DATES PROC NEAR
MOV AH,2AH
INT 21H
PUSH DX
MOV AH,0 ;OBTIENE DIA DE LA SEMANA
ADD AX,AX
MOV SI,OFFSET DTAB
ADD SI,AX
DISP " "
MOV DX,[SI] ;DESPLIEGA DIA DE LA SEMANA
MOV AH,9
INT 21H
POP DX
PUSH DX
MOV AL,DH ;OBTIENE MES
DEC AL
MOV AH,0
ADD AX,AX
MOV SI,OFFSET MTAB
ADD SI,AX
DISP " "
MOV DX,[SI] ;DESPLIEGA MES
MOV AH,9
INT 21H
POP DX
MOV AL,DL ;OBTIENE DIA DEL MES
MOV AH,0
AAM
OR AH,AH
JZ DATES1
ADD AH,30H
DISP " "
DISP AH
DATES1:
ADD AL,30H
DISP AL
DISP ","
DISP " "
CMP CX,2000
JB DATES2
SUB CX,100
DISP "2"
DISP "0"
JMP DATES3
DATES2:
DISP "1"
DISP "9"
DATES3:
SUB CX,1900
MOV AX,CX
AAM
ADD AX,3030H
DISP AH
DISP AL
RET
DATES ENDP
CODIGO ENDS
END PRINCIPAL