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

Assembleur Discussion :

[Débutant] Trier un tableau en 2 boucles


Sujet :

Assembleur

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Octobre 2004
    Messages : 92
    Points : 58
    Points
    58
    Par défaut [Débutant] Trier un tableau en 2 boucles
    Salut à tt
    Pour trier un tableau, il faut 2 boucles, enfin moi j'aurais utilisé 2 boucles.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par SaladinDev
    Salut à tt
    Pour trier un tableau, il faut 2 boucles
    Pas nécessairement, tout dépend du nombre de dimensions de ton tableau et du type de tri à effectuer.

    Did2604.

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Octobre 2004
    Messages : 92
    Points : 58
    Points
    58
    Par défaut
    Pour les 2 boucles, c'est pour parcourir et tester je sais pas comment tu l'expliques en ASM. Je suis en train d'ecrire le code mais ça marche pas. J'ai plein d'erreurs de syntaxe parce que je débute encore.
    je vais t'ecrire le code en algo:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    pour i de 1 à la fin du tableau -1 faire
                 pour j de i+1 à la fin du tableau faire 
                       si T[j]<T[i] alors permuter(T[i],T[j])
    Si je règle mon problème en asm je le poste.

  4. #4
    Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Octobre 2004
    Messages : 92
    Points : 58
    Points
    58
    Par défaut
    Voilà ce que j'ai pu faire, j'ai plein d'erreurs de syntaxe, si vous pouviez m'aider à les résoudre:
    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
    .586 
    .MODEL Flat, STDCALL
    .DATA
       TAB  db "12","5","0","10","16"
       TEMP db 0
     
    .CODE 
     
    DEBUT:MOV SI,offset TAB ; si pointe sur le debut du tableau
          MOV [DI],[SI+1]
      COM:CMP TAB[SI],TAB[DI] 
          JL PERMUTE
          CMP TAB[DI], TAB[offset TAB  +4]
          JE COM2
          INC DI
          JUMP COM
    COM2:CMP [SI],offset [TAB+4]
          JE AFFICHAGE
          INC SI
          MOV [DI],[SI+1]
    PERMUTE:MOV TEMP,TAB[DI]
            MOV TAB[DI],TAB[SI]
            MOV TAB[SI],TAMP 
            JUMP COM
    AFFICHAGE:MOV si,offset TAB
              MOV AH,TAB[SI]
              COM2 si,offset [TAB+4]
              JE FIN
              MOV DL,AL
              MOV AH,2
              INT 21H
              INC SI
              JUMP AFFICHAGE
          FIN:MOV AH,4CH
              INT 21H
              ENDS
    end DEBUT

  5. #5
    Invité
    Invité(e)
    Par défaut
    j'ai plein d'erreurs de syntaxe
    Quoi comme erreurs.... ?

    Did2604.

  6. #6
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    7 937
    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 937
    Points : 59 417
    Points
    59 417
    Billets dans le blog
    2
    Par défaut
    Bonjour !


    L'instruction CMP nécessite au moins une opérande dans un registre.

    C'est JMP !

    ?!? COM2 : connais pas cette instruction

    Sans vouloir te vexer, je crains qu'il te manque les bases de l'Assembleur. Tu peux consulter le tutoriel de Benoit-M :
    http://benoit-m.developpez.com/assembleur/tutoriel/
    Sinon, tâtonner sans comprendre ne t'apportera pas grand chose.
    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]

  7. #7
    Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Octobre 2004
    Messages : 92
    Points : 58
    Points
    58
    Par défaut
    Oui ça se vois que je debut .
    j'ai poste mon code un peu trop vite.
    je vais essaye de revenir avec un autre code .
    Mais alors pour comparer 2 cases de mon Tableau je fais comment :

  8. #8
    Invité
    Invité(e)
    Par défaut
    CMP TAB[SI],TAB[DI]
    Mais alors pour comparer 2 cases de mon Tableau je fais comment ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    MOV AX,TAB[SI]
    CMP TAB[DI],AX
    Tu ne peux pas faire deux accès en même temps en mémoire.

    Did2604.

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    842
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 842
    Points : 696
    Points
    696
    Par défaut
    et CMPS ?

  10. #10
    Invité
    Invité(e)
    Par défaut
    Connaissais pas... Je viens de me renseigner sur cette instruction et effectivement elle permet un double accès en mémoire au même moment. Merci de l'avoir signalé !

    Did2604.

Discussions similaires

  1. [Débutant] Définir un tableau de JPanel
    Par etiennegaloup dans le forum Agents de placement/Fenêtres
    Réponses: 7
    Dernier message: 20/07/2005, 10h22
  2. Trier un tableau par rapport à un autre tableau
    Par deaven dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 02/05/2005, 09h27
  3. [Débutant] Remplir et trier un tableau
    Par james-dean dans le forum Assembleur
    Réponses: 15
    Dernier message: 01/05/2005, 17h40
  4. Trier un tableau par ordre croissant
    Par Halleck dans le forum Algorithmes et structures de données
    Réponses: 15
    Dernier message: 01/11/2004, 00h04
  5. trier un tableau et compter des elements du tableau
    Par remi51 dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 17/06/2002, 16h51

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