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 68 69 70 71 72 73 74 75 76 77
| DOSSEG
.MODEL SMALL ;pour optimiser la memoire on utilise pour ce programme on utilise le modele small
.STACK 100h
.CODE
; Initialisations
mov ax,13h ; Passer en mode 13h
int 10h
push 0A000h ; ES sert pour l'adressage de l'écran
pop ds
; xor si,si ;si on veut être plus propre au début
; Boucle de dessin
ecrire:
mov al,[si-1] ; Somme des couleurs des points à gauche
add al,[si+1] ; à droite,
add al,[si-320] ; au dessus,
add al,[si+320] ; et au dessous.
shr al,2 ; Division par 4 (moyenne par défaut)
inc al ; +1 pour avoir la nouvelle couleur
mov [si],al ; Affichage de la nouvelle couleur
inc si ; Point suivant
; jne ecrire ; Pour accélérer énormement
; On teste si l'utilisateur a appuyé sur une touche pour quitter l'application ou non
mov ah,0Bh ; Tester le clavier
int 21h
cmp al,0 ; al=0 si aucune touche est appuyée
jz ecrire ; On recommence alors
; Fin du programme
;mov ax,3h ; pout un arrêt normal du programme il faut retourner en mode texte MSDOS avans de quitter l application
;int 10h
mov ah,04ch
int 21h ; fin du programme
END |
Partager