Partage
  • Partager sur Facebook
  • Partager sur Twitter

Assembleur GNU Linux AT&T

Anonyme
    25 décembre 2017 à 17:12:40

    Bonjour,

    Je vient vous demander de l'aide pour la programmation sur l'assembleur GNU Linux AT&T !

    Je n'arrive pas à comprendre comment peut-on trouver le nombre de caractère dans une variable de string en utilisant une boucle avec les codes ascii ni comment savoir si le string contient une lettre qu'on choisi en utilisant le code ascii.

    De plus je suis perdu avec le CMP, si la condition est valide (c'est à dire qu'ils sont égaux) on saute la prochaine commande ?

    Merci à vous et joyeux noël ! 

    -
    Edité par Anonyme 25 décembre 2017 à 17:15:02

    • Partager sur Facebook
    • Partager sur Twitter
      27 décembre 2017 à 14:24:28

      Salut,

      Je n'arrive pas à comprendre comment peut-on trouver le nombre de caractère dans une variable de string en utilisant une boucle avec les codes ascii ni comment savoir si le string contient une lettre qu'on choisi en utilisant le code ascii.

      Qu'as-tu déjà fait (ne mets pas tout le code, juste là où il pose problème, avec les balises </>)

      De plus je suis perdu avec le CMP, si la condition est valide (c'est à dire qu'ils sont égaux) on saute la prochaine commande ?

      CMP doit être toujours suivit d'un saut conditionnel, exemple :

      ...
      cmp eax, 05     ; On compare eax à 5
      ja EndOfProg    ; Si la condition est remplie (en fonction de CMP), en se déplace au label EndOfProg
      ...
      EndOfProg:
      ...


      Et, noyeux joël à toi aussi, mais un peu en retard ^^

      • Partager sur Facebook
      • Partager sur Twitter

      Le meilleur moyen de prédire l'avenir, c'est de l'inventer | N'oubliez pas [résolu] et +1 | Excusez mon ôrtograffe, j'essaie de l'améliorer...

        27 décembre 2017 à 15:53:17

        vanaur a écrit:

        CMP doit être toujours suivit d'un saut conditionnel

        Pas nécessairement, il existe d'autres instructions qui utilisent EFLAGS, comme les instructions CMOV.

        LunetteCrypté a écrit:

        De plus je suis perdu avec le CMP, si la condition est valide (c'est à dire qu'ils sont égaux) on saute la prochaine commande ?

        CMP compare ses deux opérandes et modifie un registre « caché » nommé EFLAGS. Les instructions conditionnelles (saut conditionnels, assignations conditionnelles, modifications conditionnelles de bits, …) se basent ensuite sur le contenu de ce registre pour savoir ce qu'elles doivent faire.

        -
        Edité par Mad scientist 27 décembre 2017 à 15:53:44

        • Partager sur Facebook
        • Partager sur Twitter
        Un vrai cours de: (C | C++ | Haskell débutant | Haskell intermédiaire | Rust).
        Anonyme
          27 décembre 2017 à 20:05:27

          Merci !

          DU COUP EST-ce que vous savez comment on fait pour que le terminal affiche le nombre de caractère du string qu'on a déclarer nous meme ?

          exemple:

          .data

          var1 : .string "le plus long"

          affiche sur le terminal "12" avec theorique %ecx

          • Partager sur Facebook
          • Partager sur Twitter
            27 décembre 2017 à 22:47:43

            Tu peux appeler la fonction printf (qui vient de la bibliothèque standard du C), ou écrire toi-même une fonction qui va faire la conversion entre un entier et sa représentation en base décimale, puis afficher cette chaine en utilisant un appel système / une fonction approprié(e), si c'est à but pédagogique.

            -
            Edité par Mad scientist 27 décembre 2017 à 22:48:35

            • Partager sur Facebook
            • Partager sur Twitter
            Un vrai cours de: (C | C++ | Haskell débutant | Haskell intermédiaire | Rust).

            Assembleur GNU Linux AT&T

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown