¿Cómo se escribe un programa para averiguar el intervalo de tiempo entre dos eventos consecutivos utilizando el lenguaje de programación 8086?
```
.MODELO PEQUEÑO
.PILA 100H
.DATOS
CADENA DB '$'; Cadena para mostrar
MSG1 DB 0DH, 0AH, 'Ingrese la primera vez:$'; mensaje 1
MSG2 DB 0DH, 0AH, 'Ingrese la segunda vez:$'; mensaje 2
RESULTADO DB 0DH, 0AH, 'El intervalo de tiempo es:$'; mensaje 3
MSG3 DB 0DH, 0AH, '$'; mensaje 4
ENTRADA1 DB 2 DUP (?); buffer de entrada por primera vez
ENTRADA2 DB 2 DUP (?); buffer de entrada por segunda vez
SALIDA DB 5 DUP (?); buffer de salida
CRLFDB 0DH, 0AH, '$'; Retorno de carro y avance de línea
.CÓDIGO
PROCESO PRINCIPAL; Procedimiento principal
MOV AX, @DATOS; Inicializar segmento de datos
MOV DS, HACHA
LEA DX, MSG1; Mensaje en pantalla 1
MOV AH, 9
ENT 21H
MOV AH, 1; Consigue la primera vez
ENT 21H
MOV AL, AH; Ahorra hora en AL
MOV BL, DL; Ahorra minuto en BL
MOV AH, 0; Borrar AH y AL
MOV AL, 0
MOV CX, 10; Multiplicar hora por 10
MUL CX
MOV DL, AL; Ahorrar hora en DL
SALIDA MOV, DL; Hora de almacenamiento en el búfer de salida
SALIDA MOV+1, ':'; Almacenar ':' en el búfer de salida
MOV AH, 1; Obtener el minuto
ENT 21H
SALIDA MOV+2, BL; Almacenar minutos en el buffer de salida
SALIDA MOV+3, ':'; Almacenar ':' en el búfer de salida
LEA DX, SALIDA; Mostrar la primera vez
MOV AH, 9
ENT 21H
LEA DX, MSG2; Mensaje en pantalla 2
MOV AH, 9
ENT 21H
MOV AH, 1; Consigue la segunda vez
ENT 21H
MOV CH, AH; Ahorra hora en CH
MOV DH, DL; Ahorra minutos en DH
MOV AH, 0; Borrar AH y AL
MOV AL, 0
MOV CX, 10; Multiplicar hora por 10
MUL CX
MOV DL, AL; Ahorrar hora en DL
CMP DL, SALIDA; Comparar horas
JB SUB_HORAS; Si la segunda hora
SUB CANAL,SALIDA; Resta la segunda hora de la primera hora
MOV DL, CH; Guardar diferencia en DL
MOV AH, 0; Borrar AH y AL
MOV AL, 0
MOV CX, 10; Multiplicar minuto por 10
MUL CX
MOV DL, AL; Ahorra minuto en DL
CMP DL, SALIDA+2; comparar minutos
JB SUB_MINUTES; Si el segundo minuto
SUB DH,SALIDA+2; Resta el segundo minuto del primer minuto
MOV DL, DH; Guardar diferencia en DL
SALTAR JMP; Saltar para omitir la visualización del intervalo de tiempo "negativo"
SUB_HORAS:; Restar horas si es necesario
MOV DL, 24; Agregue 24 horas a la segunda hora
AÑADIR CH, DL
SUB CANAL, SALIDA; Resta la segunda hora de la primera hora
MOV DL, CH; Guardar diferencia en DL
SUB_MINUTOS:; Resta minutos si es necesario
MOV DL, 60; Agregue 60 minutos al segundo minuto
AÑADIR DH, DL
SUB DH, SALIDA+2; Resta el segundo minuto del primer minuto
MOV DL, DH; Guardar diferencia en DL
SALTAR:
SALIDA MOV+4, DL; Almacenar la diferencia de minutos en el búfer de salida
LEA DX, SALIDA; Intervalo de tiempo de visualización
MOV AH, 9
ENT 21H
LEA DX, RESULTADO; Mensaje en pantalla 3
MOV AH, 9
ENT 21H
MOV AH, 4 canales; Salir con código de retorno 0
ENT 21H
ENDP PRINCIPAL; Fin del procedimiento principal
```
- ·¿Qué es un circuito de sincronización?
- ·Cómo utilizar el botón Snooze
- ·¿Cuánto dura una pila de cuarzo en un reloj de pulsera?
- ·Cómo comprar un despertador Radio
- ·¿Cuál es el alcance de un transmisor de radio USB?
- ·¿Cómo funciona un eléctrico Chime Clock Work
- ·¿Cómo se dibuja el diagrama de tiempos de la instrucción ADD M?
- ·¿Cuándo se convirtieron los relojes en un artículo del hogar?