1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
| .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; |
Partager