begin process at 2012 05 24 01:50:32
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

68xxx

 > AFFICHAGE D'UN CARRÉ (ROUGE), CENTRÉ, SUR LA POINTE, QUI SE REMPLIT

AFFICHAGE D'UN CARRÉ (ROUGE), CENTRÉ, SUR LA POINTE, QUI SE REMPLIT


 Information sur la source

Note :
10 / 10 - par 1 personne
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :68xxx Niveau :Débutant Date de création :16/08/2003 Date de mise à jour :16/08/2003 04:55:59 Vu :6 333

Auteur : steven007

Ecrire un message privé
Site perso
Commentaire sur cette source (3)
Ajouter un commentaire et/ou une note

 Description

Compilé moi ça avec Tasm,

c tout simple affichage d'un carré rouge centré sur la pointe avec une dimension de 200x200 coloré en vert.

Voici les interruptions appelé:

;  mode vidéo n°12  : AH=0, AL=12, INT 10h
;  affichage d'un pixel : AH=12, AL=couleur,CX=X,DX=Y, INT 10h

le programme commence a remplir la moitié du carré a partir du milieu jusqu'a tout en haut et puis du milieu jusqu'à tout en bas.

le reste c'est du calcul de pixel :)

J'espère que ça pourra en aider + d'1

Si vous avez des problèmes a la comprehension de ce piti algorithme laisser voc commentaire et j'y répondrai

désolé pour le screen pas moyen d'en faire sous dos je pense loool

Source

  • ;
  • ; Affichage d'un carré rouge, centré, sur la pointe
  • ; ce carré a une dimension de 200x200 et sera coloré en vert.
  • ;
  • ; mode vidéo n°12 : AH=0, AL=12, INT 10h
  • ; affichage d'un pixel : AH=12, AL=couleur,CX=X,DX=Y, INT 10h
  • ;
  • .MODEL SMALL
  • .STACK 100H
  • .486
  • .CODE
  • MAIN PROC
  • MOV AL,12h ; mode VGA
  • SUB AH,AH
  • INT 10h
  • MOV AL,12 ; rouge
  • MOV AH,12 ; ecrire pixel
  • MOV BH,0 ; page 0
  • MOV CX,120
  • MOV DX,240 ; centré
  • MOV BL,199 ; cote = 199 pixels
  • @@1: INC CX
  • DEC DX
  • INT 10h ; coté ouest -> nord
  • DEC BL
  • JNZ @@1
  • MOV BL,199
  • @@2: INC CX
  • INC DX
  • INT 10h ; coté nord -> est
  • DEC BL
  • JNZ @@2
  • MOV BL,199
  • @@3: DEC CX
  • INC DX
  • INT 10h ; coté est -> sud
  • DEC BL
  • JNZ @@3
  • MOV BL,199
  • @@4: DEC CX
  • DEC DX
  • INT 10h ; coté sud -> ouest
  • DEC BL
  • JNZ @@4
  • MOV AL,10 ; vert
  • MOV SI,397 ; horizontale
  • @@5: PUSH SI ; remplir vers le haut
  • PUSH CX
  • @@6: INC CX
  • INT 10h
  • DEC SI
  • JNZ @@6
  • POP CX
  • INC CX
  • DEC DX
  • POP SI
  • DEC SI
  • DEC SI
  • JNS @@5
  • MOV CX,121
  • MOV DX,241
  • MOV SI,395 ; ligne la plus longue déjà faite
  • @@7: PUSH SI ; remplir vers le bas
  • PUSH CX
  • @@8: INC CX
  • INT 10h
  • DEC SI
  • JNZ @@8
  • POP CX
  • INC CX
  • INC DX
  • POP SI
  • DEC SI
  • DEC SI
  • JNS @@7
  • fin: MOV AX,4C00h
  • INT 21h
  • MAIN ENDP
  • END MAIN
;
;  Affichage d'un carré rouge, centré, sur la pointe
;  ce carré a une dimension de 200x200 et sera coloré en vert.
;
;  mode vidéo n°12  : AH=0, AL=12, INT 10h
;  affichage d'un pixel : AH=12, AL=couleur,CX=X,DX=Y, INT 10h
;
.MODEL SMALL
.STACK 100H
.486
.CODE
MAIN    PROC

        MOV     AL,12h          ; mode VGA
        SUB     AH,AH           
        INT     10h

        MOV     AL,12           ; rouge
        MOV     AH,12           ; ecrire pixel
        MOV     BH,0            ; page 0
        MOV     CX,120
        MOV     DX,240          ; centré

        MOV     BL,199          ; cote = 199 pixels
@@1:    INC     CX
        DEC     DX
        INT     10h             ; coté ouest -> nord
        DEC     BL
        JNZ     @@1

        MOV     BL,199          
@@2:    INC     CX
        INC     DX
        INT     10h             ; coté nord -> est
        DEC     BL
        JNZ     @@2

        MOV     BL,199     
@@3:    DEC     CX
        INC     DX
        INT     10h             ; coté est -> sud
        DEC     BL
        JNZ     @@3

        MOV     BL,199 
@@4:    DEC     CX
        DEC     DX
        INT     10h             ; coté sud -> ouest
        DEC     BL
        JNZ     @@4

        MOV     AL,10           ; vert

        MOV     SI,397          ; horizontale
@@5:    PUSH    SI              ; remplir vers le haut
        PUSH    CX
@@6:    INC     CX
        INT     10h
        DEC     SI
        JNZ     @@6
        POP     CX
        INC     CX
        DEC     DX
        POP     SI
        DEC     SI
        DEC     SI
        JNS     @@5

        MOV     CX,121
        MOV     DX,241

        MOV     SI,395          ; ligne la plus longue déjà faite        
@@7:    PUSH    SI              ; remplir vers le bas
        PUSH    CX
@@8:    INC     CX
        INT     10h
        DEC     SI
        JNZ     @@8
        POP     CX
        INC     CX
        INC     DX
        POP     SI
        DEC     SI
        DEC     SI
        JNS     @@7

fin:    MOV     AX,4C00h
        INT     21h
MAIN    ENDP
END     MAIN

 Conclusion

Compiler sous tasm, si y a un bug merci de le signaler


 Sources du même auteur

CALCUL DU LOGARITHME NÉPÉRIEN ET DE L'EXPOSANT (X+1)M

 Sources de la même categorie

Source avec une capture AIRSTRIKE, JEU DE ‘SHOOT THEM UP’ EN ASSEMBLEUR par loudadyassine
LECTURE ET ECRITURE D'UN CARACTERE ET D'UNE CHAINE DE CARACT... par yasmus
Source avec Zip EN UTILISANT LES INTERRUPTIONS DE DOS , CECI EST UN CODE DE... par iltir_master
DÉCONCATÉNATION DE CHAÎNE SOUS MASM32V8 par Stormy
GENERIC WINDOWS XP URL DOWNLOAD AND EXECUTE SHELLCODE par theXman

Commentaires et avis

Commentaire de steven007 le 16/08/2003 04:58:12

Pour changer de couleur par exemple changer la couleur du coutour qui est rouge, modifier le 12 et entré la couleur correspondant a votre choix.

Commentaire de Maxilie le 17/12/2003 11:31:42

superbe

Commentaire de steven007 le 27/04/2007 21:47:01

Merci :P

4 ans + tard j'en suis toujours aussi fière quand je repasse sur le site à vrai dire je ne serai plus capable de le refaire car j'ai changé de métier et de vie... lol , c'était un projet que je devais faire pour l'école ça me rappel de bon vieux souvenir tous cela. Allez salut tous ;)

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,855 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales