Reloj en binario
Publicado por soulblazer (2 intervenciones) el 07/12/2012 21:42:56
Tengo este código de un reloj en Ensamblador (corre):
El reloj funciona bien, pero no lo puedo poner en binario T___T Gracias
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
;PROGRAMA RELOJ PARA MOSTRAR EN PANTALLA EL RELOJ DE LA MAQUINA
.MODEL SMALL ;MODELO SMALL
.DATA ;SEGMENTO DE DATOS
;VARIABLES
CADENA DB 9 DUP (' '),'$'
RESIDUO DB ?
AUX DB ?
HDEC DB ?
HUNI DB ?
MDEC DB ?
MUNI DB ?
SDEC DB ?
SUNI DB ?
.STACK 100H ;PILA
.CODE ;CODIGO
INICIO:
MOV AX, @DATA
MOV DS, AX
MOV AL, 3 ;MODO DE VIDEO
MOV AH, 0 ;80 X 25
INT 10H
CAPTURA:
MOV AH, 2CH ;LLAMA LA INT QUE CAPTURA EL RELOJ DE LA MAQUINA
INT 21H
CALL RELOJ ;LLAMADA AL PROCEDIMIENTO RELOJ
MOV AH, 2
MOV DL, 35 ;POSICIONA EL CURSOR
MOV DH, 10 ;EN LA FILA 10, COLUMNA 35
INT 10H
MOV AH, 02H
MOV DL, HDEC
INT 21H
MOV DL, HUNI
INT 21H
MOV AH, 02H
MOV DL, 58
INT 21H
MOV AH, 2
MOV DL, 38 ;POSICIONA EL CURSOR
MOV DH, 10 ;EN LA FILA 10, COLUMNA 38
INT 10H
MOV AH, 02H
MOV DL, MDEC
INT 21H
MOV DL, MUNI
INT 21H
MOV AH, 02H
MOV DL, 58
INT 21H
MOV AH, 2
MOV DL, 41 ;POSICIONA EL CURSOR
MOV DH, 10 ;EN LA FILA 10, COLUMNA 41
INT 10H
MOV AH, 02H
MOV DL, SDEC
INT 21H
MOV DL, SUNI
INT 21H
MOV AH, 1 ;VERIFICA SI SE HA PRESIONADO TECLA
INT 16H
JZ CAPTURA ;SINO SALTA A CAPTURA Y EL RELOJ SIGUE FUNCIONADO
MOV AX, 4CH ;REGRESA AL DOS
INT 21H
RELOJ PROC ;PROCEDIMIENTO QUE OBTIENE EL RELOJ DE LA MAQUINA
CALL HORAS ;LLAMADA A LOS PROCEDIMIENTOS DE HORAS, MINUTOS Y SEGUNDOS
CALL MINUTOS
CALL SEGUNDOS
RET ;RETORNO
ENDP ;FIN DEL PROCEDIMIENTO
HORAS PROC ;PROCEDIMIENTO QUE OBTIENE LAS HORAS
MOV AL, CH ;SE OBTIENEN LAS HORAS (0-23)
AAM ;SE DESEMPAQUETA EN BCD
ADD AX, 3030H ;SE CONVIERTE A ASCII
MOV HDEC, AH
MOV HUNI, AL
RET ;RETORNO
ENDP ;FIN DEL PROCEDIMIENTO
MINUTOS PROC ;PROCEDIMIENTO QUE OBTIENE LOS MINUTOS
MOV AL, CL ;SE OBTIENEN LOS SEGUNDOS
AAM ;SE DESEMPAQUETA EN BCD
ADD AX, 3030H ;SE CONVIERTE A ASCII
MOV MDEC, AH
MOV MUNI, AL
RET ;RETORNO
ENDP ;FIN DEL PROCEDIMIENTO
SEGUNDOS PROC ;PROCEDIMIENTO QUE OBTIENE LOS SEGUNDOS
MOV AL, DH ;SE OBTIENEN LOS SEGUNDOS
AAM ;SE DESEMPAQUETA EN BCD
ADD AX, 3030H ;SE CONVIERTE A ASCII
MOV SDEC, AH
MOV SUNI, AL
RET ;RETORNO
ENDP ;FIN DEL PROCEDIMIENTO
END INICIO ;FIN DEL PROGRAMA
El reloj funciona bien, pero no lo puedo poner en binario T___T Gracias
Valora esta pregunta


0