Saltar al contenido

Cómo establecer un retraso de 1 segundo en lenguaje ensamblador 8086

Recabamos en el mundo on line para mostrarte la respuesta para tu inquietud, en caso de dificultades déjanos tu pregunta y te contestaremos porque estamos para ayudarte.

Solución:

Establezca un intervalo de 1 millón de microsegundos (1 segundo) utilizando las siguientes instrucciones.

MOV     CX, 0FH
MOV     DX, 4240H
MOV     AH, 86H
INT     15H

Puede configurar varios segundos de retraso usando 86H e INT 15H

revisa estos enlaces para más detalles

Espera un número específico de microsegundos antes de devolver el control a la persona que llama

INT 15H 86H: Espera

Puedes usar la interrupción 1Ah / función 00h (OBTENER HORA DEL SISTEMA) para obtener el número de tics de reloj (18,2/s) desde la medianoche en CX:DX.

Entonces, para esperar aproximadamente 1 segundo usando este método, ejecutaría esta función de interrupción una vez, guardaría CX: DX en una variable, luego ejecutaría la misma interrupción en un bucle hasta que el valor absoluto de CX:DX - firstCX:DX es mayor que 18.

Lo que finalmente terminé usando fue el bucle nop

; start delay

mov bp, 43690
mov si, 43690
delay2:
dec bp
nop
jnz delay2
dec si
cmp si,0    
jnz delay2
; end delay

Utilicé dos registros, los configuré en cualquier valor alto y seguirá en bucle hasta que ambos valores lleguen a cero.

Lo que usé aquí fue AAAA para ambos SI and BPterminé con aproximadamente 1 segundo para cada bucle de retraso.

Gracias por la ayuda chicos, y sí, todavía usamos MS DOS para este curso de lenguaje ensamblador 🙁

valoraciones y reseñas

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *