elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  ASM (Moderador: Eternal Idol)
| | | |-+  crear interrupción por hardware
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: crear interrupción por hardware  (Leído 2,284 veces)
FERNIIIIN

Desconectado Desconectado

Mensajes: 11


Ver Perfil
crear interrupción por hardware
« en: 28 Mayo 2019, 06:23 am »

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:
Código
  1. org 100h
  2.  
  3. .model small
  4.  
  5. .stack 100
  6.  
  7. .data
  8. u db 0
  9. d db 0
  10. v db 0
  11. tiempo db 0
  12.  
  13. .code
  14.  
  15. start:
  16. mov cx,00h ; inicializo contador en cero
  17.  
  18. inicio:
  19. mov tiempo,cl
  20. ;call retraso1s  ;salto a retraso de 1s
  21. ;call retraso5s  ;salto a retraso de 1s
  22. ;call retraso10s ; salto a retraso de 10s
  23. mov cl,tiempo
  24. cmp cl,10 ; compara si en el contador es mayor a 9
  25. jc aumento ;Destino es menor que origen
  26. ;jne repite ; sino es verdadera la ultima comparacion regresa a repite
  27. jz separar ;Numeros iguales
  28. jnz separar ;Destino mayor a origen
  29. cmp d,06h
  30. jc inicio ;Destino es menor que origen
  31. jz start ;Numeros iguales
  32.  
  33.  
  34. separar:
  35. mov al,cl
  36. AAM
  37. mov u,al
  38. mov al,ah
  39. AAM
  40. mov d,al
  41. ;cmp d,06h
  42. ;jz salir ;Numeros iguales
  43. mov ah,02h
  44. mov dl,d
  45. add dl,30h
  46. int 21h  
  47. mov ah,02h
  48. mov dl,u
  49. add dl,30h
  50. int 21h
  51. inc cl ; incremento el contador en uno
  52. jmp inicio
  53. ret
  54.  
  55. aumento:
  56. mov dl,cl ; muevo el valor del contador a dl para imprimir
  57. inc cl ; incremento el contador en uno
  58. add dl,30h ; sumo 30h a dl para convertirlo al codigo ascii y poder imprimirlo
  59. mov ah,02h ; funcion para imprimir un caracter
  60. int 21h ; imprimo
  61. jmp inicio
  62. ret      
  63.  
  64.  
  65. retraso1s:
  66.    MOV     CX, 0FH
  67.    MOV     DX, 4240H
  68.    MOV     AH, 86H
  69.    INT     15H    
  70. ret
  71.  
  72. retraso4s:
  73.    MOV     CX,3aH
  74.    MOV     DX,9680H
  75.    MOV     AH,86H
  76.    INT     15H    
  77. ret
  78.  
  79. retraso5s:
  80.    MOV     CX,45H
  81.    MOV     DX,9680H
  82.    MOV     AH,86H
  83.    INT     15H    
  84. ret
  85.  
  86.  
  87. retraso10s:
  88.    MOV     CX, 98H
  89.    MOV     DX, 9680H
  90.    MOV     AH, 86H
  91.    INT     15H    
  92. ret
  93.  
  94.  
  95. salir:
  96. .exit
  97. end
  98.  


Espero que me puedan dar una idea de como continuar


En línea

xv0


Desconectado Desconectado

Mensajes: 1.027



Ver Perfil
Re: crear interrupción por hardware
« Respuesta #1 en: 29 Mayo 2019, 22:41 pm »

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.


En línea

FERNIIIIN

Desconectado Desconectado

Mensajes: 11


Ver Perfil
Re: crear interrupción por hardware
« Respuesta #2 en: 17 Junio 2019, 05:07 am »

lamento la respuesta tardía, lo realice y me funciono.
 :-[ :-[

Gracias, por tu apoyo.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda con la interrupcion por RB_0
Electrónica
josegenio 0 3,096 Último mensaje 19 Enero 2008, 22:51 pm
por josegenio
Interrupcion de teclado « 1 2 »
.NET (C#, VB.NET, ASP)
darnali 12 9,806 Último mensaje 13 Abril 2010, 17:51 pm
por darnali
interrupcion 13h,02h
ASM
AYLASER 1 4,218 Último mensaje 27 Mayo 2010, 10:16 am
por Eternal Idol
interrupcion en lenguaje C
Programación C/C++
retsam07 1 5,827 Último mensaje 7 Octubre 2013, 14:12 pm
por daryo
[C] Interrupcion de teclado en C
Programación C/C++
JoseluCross 2 2,174 Último mensaje 2 Mayo 2016, 03:35 am
por class_OpenGL
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines