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 BP
terminé 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 🙁