probleme en assembleur

probleme en assembleur - ASM - Programmation

Marsh Posté le 17-02-2011 à 22:29:52    

je veux créer un programme qui rederige l'interruption 23h sur une routine à lui,de façon à garder le controle des évenements meme lorsque CTRL+Break est actionnée.la nouvelle routine de gestion de l'interruption 23h se doit d'afficher à l'utilisateur un message lui demandant de confirmer l'arret d'un programme en cours d'éxécution,puis événtuellement de mettre fin proprement au programme.
voici le code mais lors de l'exécution le programme il ne marche pas correctement .pouvez vous m'aider svp?
Code :
.

Code :
  1. model small
  2. .stack 100h
  3. .386
  4. .data
  5. v dw 32000
  6. vecteur dw ?
  7. message1 db 'bonjour',10,13,'$'
  8. message2 db 'souhaitez vous vraiment fermer le programme? (o/n)',10,13,'$'
  9. num_int db "23h"
  10. .code
  11. main proc
  12. mov ax,@data
  13. mov ds,ax
  14. mov cx,0
  15. Afficher_Bonjour:
  16. mov ah,9
  17. lea dx,message1
  18. int 21h
  19. inc cx
  20. cmp cx,v
  21. jne Afficher_Bonjour
  22. Redirige_Int:
  23. mov al,23h
  24. mov ah,35h
  25. mov [vecteur],bx
  26. mov [vecteur+2],es
  27. lea dx,Traiter_Ctrl_Break
  28. mov al,23h
  29. mov ah,25h
  30. int 21h
  31. Traiter_Ctrl_Break:
  32. mov ah,9
  33. lea dx,message2
  34. int 21h
  35. verif1:
  36. mov ah,1
  37. int 21h
  38. cmp al,'o'
  39. jne verif2
  40. jmp Fin_Propre
  41. verif2:
  42. mov ah,1
  43. int 21h
  44. cmp al,'n'
  45. jne verif1
  46. jmp afficher_bonjour
  47. Fin_Propre:
  48. lea dx,retour
  49. mov al,23h
  50. mov ah,25h
  51. int 21h
  52. retour:
  53. mov bx,[vecteur]
  54. mov es,[vecteur+2]
  55. mov ah,4ch
  56. int 21h
  57. main EnDP
  58. EnD main;

Reply

Marsh Posté le 17-02-2011 à 22:29:52   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed