Répondre à la discussion
Affichage des résultats 1 à 9 sur 9

Parité en assembleur



  1. #1
    fred_12

    Parité en assembleur


    ------

    Bonjour!!!

    Je dois testé la parité d'une trame en assembleur mais je ne vois pas comment m'y prendre.

    Quelqu'un connaît-il assez l'assembleur pour avoir une idée qui me permettrait de trouver une solution???

    Merci car je sèche

    -----

  2. Publicité
  3. #2
    Jeremy

    Re : Parité en assembleur

    Le bit de parité dune trame sert à controller l'intégrité de la trame, il suffit de voir si le nombre de 1 dans ta trame est paire ou impaire et de comparer avec le bit de parité .

  4. #3
    fred_12

    Re : Parité en assembleur

    Le problème que j'ai c'est que je ne sais justment pas comment compter les bits à 1 de ma trame.

    Dois-je décaler toute ma trame pour ensuite testé le carry. Je ne vois pas trop comment faire...

  5. #4
    Jeremy

    Re : Parité en assembleur

    Y'a surement plein de méthode qui marche, regarde dans la doc assembleur (d'ailleurs c'est quel assembleur ?) les commandes pour tester un bit.

  6. #5
    fred_12

    Re : Parité en assembleur

    Mon microcontôleur est un Hitachi H8S2144. Il ya bien sur des fonction comme (btst.b) mais je ne vois pas comment mettre en relation plusieurs tests de bits pour savoir si j'en ai un nombre paire ou pas...

  7. A voir en vidéo sur Futura
  8. #6
    Jeremy

    Re : Parité en assembleur

    Hum, il me semble que btst test le bit et inscrit le résultat dans le registre Z, donc c'est un test au sens que tu peux utiliser "beq" apres et executer le code que tu veux dans le cas ou le bit est à 0 ..
    J'ai pas de doc sous la main donc je peux pas te donner les commandes exactes non plus.

    En gros tu prendre un registre que tu initialise à 0. Tu testes chaque bit de ta frame, si il est à 1 tu inverses ton reigstre (0->1; 1->0). A la fin tu dois avoir la même chose que ton bit de parité.

  9. Publicité
  10. #7
    fred_12

    Re : Parité en assembleur

    Ouai ca m'a l'air d'être une bonne solution d'inverser un registre quand j'ai un 1 et de comparer avec le bit de parité à la fin.

    J'ai fais un petit test sur papier et ca marche.

    Je te remercie bcp pout ton aide

    ++

  11. #8
    Jack

    Re : Parité en assembleur

    salut,

    à mon avis le plus simple est de faire des rotations de l'octet. Le bit sortant est toujours recueilli dans la carry. Tu as surement des instructions du type branchement si carry=0 ou si carry=1.

    Selon l'état de la carry tu fais ou non une incrémentation d'un compteur. Au bout de 8 rotations, ton octet a repris sa valeur initiale et il faut passer à l'octet suivant.

    A la fin de la trame le compteur te donne la parité.

    Ce qui m'étonne, c'est l'intérêt d'un bit de parité pour une trame. Pour un octet, d'accord, mais pour une trame,on effectue plutôt un checksum ou un crc.

    A+

  12. #9
    NiColap

    Re : Parité en assembleur

    Salut,

    Pour calculer la parité, une des possibilité est d'utiliser le OU Exclusif sur les bits de la trame.
    Au début de la vérification, faire un Ou exclusit avec les 2 premiers bits de la trame. Ensuite, faire un ou exclusif avec ce resultat et le 3eme bit et ainsi de suite...
    A la fin, si le resultat est '0', le nombre de 1 dans la trame est paire, si le résultat est '1', la trame est impaire.

    ciao.

Sur le même thème :

Discussions similaires

  1. parité
    Par ray38 dans le forum Mathématiques du collège et du lycée
    Réponses: 3
    Dernier message: 22/10/2007, 18h30
  2. Parité
    Par Cloudboy dans le forum Électronique
    Réponses: 1
    Dernier message: 08/06/2006, 18h58
  3. parité ?
    Par DamaD dans le forum Mathématiques du collège et du lycée
    Réponses: 1
    Dernier message: 21/04/2006, 02h04
Découvrez nos comparatifs produits sur l'informatique et les technologies.