Hola a todos, tengo una super pregunta, ¿Como se crea una interrupción por hardware?
Tengo un programa que hace un conteo del 0 al 59 y cuando llega a 60 pasa denuevo al 0 y reinicia el ciclo, hasta ahi voy bien, pero no se como hacer que al presionar la tecla "1" se active un retraso y que al presionar "2" se active otro retraso diferente.
En código tengo lo siguiente:
org 100h
.model small 
.stack 100 
.data 
u db 0
d db 0
v db 0 
tiempo db 0
.code 
start:
mov cx,00h ; inicializo contador en cero
inicio:
mov tiempo,cl
;call retraso1s  ;salto a retraso de 1s
;call retraso5s  ;salto a retraso de 1s
;call retraso10s ; salto a retraso de 10s
mov cl,tiempo
cmp cl,10 ; compara si en el contador es mayor a 9
jc aumento ;Destino es menor que origen
;jne repite ; sino es verdadera la ultima comparacion regresa a repite
jz separar ;Numeros iguales
jnz separar ;Destino mayor a origen
cmp d,06h
jc inicio ;Destino es menor que origen
jz start ;Numeros iguales
       
separar:
mov al,cl
AAM
mov u,al
mov al,ah
AAM
mov d,al
;cmp d,06h
;jz salir ;Numeros iguales
mov ah,02h
mov dl,d
add dl,30h
int 21h   
mov ah,02h
mov dl,u
add dl,30h
int 21h
inc cl ; incremento el contador en uno
jmp inicio 
ret
aumento:
mov dl,cl ; muevo el valor del contador a dl para imprimir
inc cl ; incremento el contador en uno
add dl,30h ; sumo 30h a dl para convertirlo al codigo ascii y poder imprimirlo
mov ah,02h ; funcion para imprimir un caracter
int 21h ; imprimo
jmp inicio
ret       
       
retraso1s:
    MOV     CX, 0FH
    MOV     DX, 4240H
    MOV     AH, 86H
    INT     15H    
ret 
retraso4s:
    MOV     CX,3aH
    MOV     DX,9680H
    MOV     AH,86H
    INT     15H    
ret 
retraso5s:
    MOV     CX,45H
    MOV     DX,9680H
    MOV     AH,86H
    INT     15H    
ret 
retraso10s:
    MOV     CX, 98H
    MOV     DX, 9680H
    MOV     AH, 86H
    INT     15H    
ret
salir:
.exit
end 
Espero que me puedan dar una idea de como continuar
			
			
			
				Hola di no me equivoco la int 15 puede interceptar el teclado, por que no haces un bucle y depende del valor haga una cosa u otra, y luego al finalizar el retraso que vuelva de nuevo al bucle.
Saludos.
			
			
			
				lamento la respuesta tardía, lo realice y me funciono.
 :-[ :-[
Gracias, por tu apoyo.