keli1 | 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 :
- model small
- .stack 100h
- .386
- .data
- v dw 32000
- vecteur dw ?
- message1 db 'bonjour',10,13,'$'
- message2 db 'souhaitez vous vraiment fermer le programme? (o/n)',10,13,'$'
- num_int db "23h"
- .code
- main proc
- mov ax,@data
- mov ds,ax
- mov cx,0
- Afficher_Bonjour:
- mov ah,9
- lea dx,message1
- int 21h
- inc cx
- cmp cx,v
- jne Afficher_Bonjour
- Redirige_Int:
- mov al,23h
- mov ah,35h
- mov [vecteur],bx
- mov [vecteur+2],es
- lea dx,Traiter_Ctrl_Break
- mov al,23h
- mov ah,25h
- int 21h
- Traiter_Ctrl_Break:
- mov ah,9
- lea dx,message2
- int 21h
- verif1:
- mov ah,1
- int 21h
- cmp al,'o'
- jne verif2
- jmp Fin_Propre
- verif2:
- mov ah,1
- int 21h
- cmp al,'n'
- jne verif1
- jmp afficher_bonjour
- Fin_Propre:
- lea dx,retour
- mov al,23h
- mov ah,25h
- int 21h
- retour:
- mov bx,[vecteur]
- mov es,[vecteur+2]
- mov ah,4ch
- int 21h
- main EnDP
- EnD main;
|
|