keli1
Messages postés18Date d'inscriptionmercredi 26 janvier 2011StatutMembreDernière intervention17 février 2011
-
17 févr. 2011 à 22:43
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 :
.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;