IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

x86 32-bits / 64-bits Assembleur Discussion :

[Débutant] Affichage sur coordonnées paires et multiples de 10


Sujet :

x86 32-bits / 64-bits Assembleur

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur Symfony2
    Inscrit en
    Novembre 2008
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur Symfony2
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2008
    Messages : 48
    Points : 18
    Points
    18
    Par défaut [Débutant] Affichage sur coordonnées paires et multiples de 10
    Bonjour,

    J'ai un exercice en Assembleur, assez basique mais sur lequel j'ai un peu de mal. Voici l'énoncé :
    Ecrire un programme qui affiche sur tous les pixels dont les deux coordonnées sont paires et multiples de 10, un caractére demandé au démarrage du programme (on démarrera en 0,0).
    J'ai donc fait le programme en question que je vais poster ci dessous..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    INCLUDE IUTInfo.inc
     
    ;Ecrire un programme qui affiche sur tous les pixels dont les deux coordonnées sont paires et multiples
    ;de 10, un caractére demandé au démarrage du programme (on demarrera en 0,0).
     
    .data
    msg BYTE "entrez un caractere  => ",0
    finn BYTE "finit",0
    var BYTE (0)        ; contient le caractére
     
    .code
    main       PROC
               call clrscr
               mov edx,OFFSET msg
               call writestring
               call readchar
               mov var,al
               call clrscr
               mov dh,0
               mov dl,0      ; position sur une ligne     numero colone
     
    testpourdh: mov eax,40
                call delay
                cmp dh,40
                je fin
                mov cl,10
                mov al,dh
                div cl
                cmp ah,0  ; si c'est égal, alors multiple de 10 ( je crois )
                jne dhpasmultiple
                je  testpourdl
     
    testpourdl: mov cl,10
                mov al,dl
                div cl
                cmp ah,0  ; si c'est égal, alors multiple de 10 ( je crois )
                jne dlpasmultiple
                je multiple
     
    dhpasmultiple:
                    add dh,1
                    jmp testpourdh
     
    dlpasmultiple: cmp dl,100
                   je boucle
                   add dl,1
                   jmp testpourdh
     
    boucle: add dh,1
            mov dl,0
            jmp testpourdh
     
     
    multiple:  call gotoxy
               mov al,var
               call writechar
               cmp dl,100
               je sautdeligne
               add dl,1
               jmp testpourdh
     
    sautdeligne: add dh,1
                 mov dl,0
                 jmp testpourdh
     
     
    fin:
                call crlf
                call crlf
                mov edx,OFFSET finn
                call writestring
     
     
                exit
    main ENDP
    END main
    J'ai donc fais un test avec une division par 10; comme ça, si 5/10=2 reste 0 donc, 5 multiple de 10 .. ( si j'ai faux, c'est donc un simple probléme de maths )

    Le problème, c'est donc que des étoiles ne s'affichent pas sur les lignes DL=5 par exemple... (vous verrez, vous comprendrez mieux en lançant le code).
    Donc, si quelqu'un trouve le temps de regarder mon bout de code afin de m'aider à comprendre ce qui cloche, je le remercie

  2. #2
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    7 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 7 938
    Points : 59 417
    Points
    59 417
    Billets dans le blog
    2
    Par défaut
    Bonjour !
    Citation Envoyé par skyzomik Voir le message
    J'ai donc fais un test avec une division par 10; comme ça, si 5/10=2 reste 0 donc, 5 multiple de 10 .. ( si j'ai faux, c'est donc un simple probléme de maths )

    Le problème, c'est donc que des étoiles ne s'affichent pas sur les lignes DL=5 par exemple... (vous verrez, vous comprendrez mieux en lançant le code).
    Donc, si quelqu'un trouve le temps de regarder mon bout de code afin de m'aider à comprendre ce qui cloche, je le remercie
    5/10 = 0, reste 5 - c'est bien un problème de maths
    Il est normal que tu n'aies aucun affichage sur la ligne 5 puisque 5 n'est pas multiple de 10.
    Règles du forum
    Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
    Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
    Mes tutoriels et sources Pascal

    Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
    La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]

  3. #3
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 942
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 942
    Points : 5 654
    Points
    5 654
    Par défaut
    Xoe,
    Citation Envoyé par skyzomik Voir le message
    J'ai donc fais un test avec une division par 10; comme ça, si 5/10=2 reste 0 donc, 5 multiple de 10 .. ( si j'ai faux, c'est donc un simple probléme de maths
    Ce post m'avait échappé, mais 5 multiple de 10, il fallait oser.
    Si les cons volaient, il ferait nuit à midi.

  4. #4
    Membre à l'essai
    Homme Profil pro
    Développeur Symfony2
    Inscrit en
    Novembre 2008
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur Symfony2
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2008
    Messages : 48
    Points : 18
    Points
    18
    Par défaut
    Bon, j'ai l'habitude de me planter sur ce genre de détail..
    Mais le plus marrant, c'est que ça n'a choqué personne quand je l'ai dit à d'autres amis en classe pour avoir de l'aide ( qui, eux ne l'ont pas fait )

    Si je me base sur un cours de CP, je cite: - les multiples de 10 sont les nombres qui se terminent par 0.
    C'était donc un probléme de maths, et je suis allé un peu trop vite...

    Donc finalement, le code est correct, non ? !

    Merci


    Si ce post n'est pas d'utilité publique ( je doute vraiment qu'il le soit ) vous pouvez le supprimer

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [ZF 1.11] Débutant : aide sur affichage d'un formulaire de login
    Par Paul75 dans le forum MVC
    Réponses: 2
    Dernier message: 05/01/2011, 19h47
  2. [Image] Affichage aux coordonnées sur une image
    Par Z4ng3tsu dans le forum Windows Presentation Foundation
    Réponses: 1
    Dernier message: 13/09/2010, 21h25
  3. Réponses: 1
    Dernier message: 09/06/2008, 18h34
  4. Réponses: 4
    Dernier message: 28/02/2006, 14h25
  5. [Débutant] Affichage d'un video avi sur le web
    Par oumani dans le forum Balisage (X)HTML et validation W3C
    Réponses: 11
    Dernier message: 06/02/2006, 13h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo