Déplacer des bits en assembleur 8051...
Répondre à la discussion
Affichage des résultats 1 à 6 sur 6

Déplacer des bits en assembleur 8051...



  1. #1
    invite1d577638

    Déplacer des bits en assembleur 8051...


    ------

    Bonjour à tous,

    J'ai un petit souci concernant un projet comprenant un peu d'assembleur MSC51... J'ai besoin de mettre des sorties du micro à l'état haut ou bas en fonction des bits d'un registre (l'accumulateur pour le coup).

    Problème, la syntaxe suivante ne fonctionne pas ! (La variable A étant fonctionnelle...)
    Code:
    MOV P2.0, a.0
    MOV P2.1, a.1
    MOV P2.2, a.2
    MOV P2.3, a.3
    MOV P2.4, a.4
    Bien que j'ai cru comprendre dans la doc (page 35) qu'il était possible de le faire suivant cette syntaxe. Un exemple était donné avec l'utilisation du carry flag à la place du bit de l'accumulateur, mais bon, mon compilateur refuse ces lignes. Bien sûr, ceci fonctionne :

    Code:
    mov p2  , A
    Mais pour le coup, ça ne m'arrange pas, car tout P2 est modifié alors qu'il ne me faut que 5 bits.

    Je pourrais très bien me dépanner avec des Jump If Bit Set, mais ça me fait rajouter des étiquettes et des lignes de code... Alors qu'un simple MOV pourrait convenir.

    Une idée ?

    Merci !

    -----

  2. #2
    antek

    Re : Déplacer des bits en assembleur 8051...

    J'ai pas vu dans ta doc qu'on pouvait faire des échanges de bits.
    L'exemple dont tu parles se trouve où ?

  3. #3
    invite1d577638

    Re : Déplacer des bits en assembleur 8051...

    Page 35...(numérotation atmel en bas de page) :

    MOV <dest-bit>,<src-bit>

    Function: Move bit data

    Description:

    MOV <dest-bit>,<src-bit> copies the Boolean variable indicated by the second operand into the location specified by the first operand. One of the operands must be the carry flag; the other may be any directly addressable bit. No other register or flag is affected.

    Example:

    The carry flag is originally set. The data present at input Port 3 is 11000101B. The data previously written to output Port 1 is 35H (00110101B).
    MOV P1.3,C
    MOV C,P3.3
    MOV P1.2,C

  4. #4
    antek

    Re : Déplacer des bits en assembleur 8051...

    Merci !

    Donc One of the operands must be the carry flag
    Un des opérateurs doit être le bit carry

  5. A voir en vidéo sur Futura
  6. #5
    invite1d577638

    Re : Déplacer des bits en assembleur 8051...

    Pfffff j'avais pas lu ça....

    Une possibilité de faire autrement alors ? (En une ligne...?) (J'ai peur que non...)

    Je peux sans doute faire ça :

    Code:
    MOV C, A.0
    MOV P2.0, C
    Ce qui reste correct ! Je teste ce soir...

  7. #6
    invite1d577638

    Re : Déplacer des bits en assembleur 8051...

    Je confirme que cette syntaxe fonctionne :

    Code:
    MOV C , Acc.0
    	MOV p2.0 , C
    	
    	MOV C , Acc.1
    	MOV p2.1 , C
    	
    	MOV C , Acc.2
    	MOV p2.2 , C
    	
    	MOV C , Acc.3
    	MOV p2.3 , C
    	
    	MOV C , Acc.4	
    	MOV p2.4 , C
    	
    	MOV C , Acc.5
    	MOV p2.5 , C
    	
    	MOV C , Acc.6
    	MOV p2.5 , C
    	
    	MOV C , Acc.7
    	MOV p2.5 , C
    Merci !

Discussions similaires

  1. soustraction 16 bits,deux registres 8 bits, assembleur
    Par invite480f4512 dans le forum Électronique
    Réponses: 5
    Dernier message: 29/03/2011, 20h59
  2. PIC assembleur et gestion de mots de 16 bits
    Par invite427c7eae dans le forum Électronique
    Réponses: 10
    Dernier message: 07/10/2009, 06h53
  3. Décodeur BCD - 7 Segments en langage Assembleur 8051
    Par invite79668502 dans le forum Électronique
    Réponses: 4
    Dernier message: 30/09/2009, 09h43
  4. Assembleur 8051
    Par invite13e724e8 dans le forum Électronique
    Réponses: 0
    Dernier message: 01/06/2008, 23h20
  5. algorithme pour decoder 4 bits en 16 flags en assembleur
    Par invite7ff929b6 dans le forum TPE / TIPE et autres travaux
    Réponses: 1
    Dernier message: 16/05/2006, 19h06
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...