Faire un xor en langage assembleur

Résolu
'sop Messages postés 12 Date d'inscription   Statut Membre Dernière intervention   -  
'sop Messages postés 12 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

je souhaite realiser une simple operation en langage assembleur : un xor entre 2 bits.
Le jeu d'instruction comporte les instructions XORLW et WORWF mais je ne vois pas comment les utiliser

Sur le port B, j'ai un message de 8 bits. par exemple 0000 0000.
Je souhaite faire attribuer a une variable "resultat_xor" (déclarée avant) le resultat de lopération xor entre le bit 1 du port B, et le bit 3 du port B, par exemple.
Mais j'ai l'impression qu'on ne peut pas faire ca avec les 2 instructions ci dessus: XORF n'est pas adaptée car elle réalise l'opération (W) xor k -> (w) ; et la 2eme non plus j'ai m'impression.

Pourriez vous m'indiquer comment faire svp?

Merci
A voir également:

5 réponses

'sop Messages postés 12 Date d'inscription   Statut Membre Dernière intervention  
 
precision importante : je travaille sur un pic 16f876...
0
le père
 
Bonjour

Pour faire un xor entre 2 bits, tu peux
. soit décaler l'une des variables pour aligner les bits à traiter, et ensuite utiliser un XORWF
. soit forcer la réponse à 0 et tester successivement BTFSC chacun des bits. S'il est à 1 tu incrémentes la réponse. À la fin, le résultat est dans le poids faible de la réponse
  CLRF    REPONSE
  BTFSC   VAR1,B1
  INCF    REPONSE,F
  BTFSC   VAR2,B2
  INCF    REPONSE,F
; le résultat est dans le poids faible de REPONSE
0
'sop Messages postés 12 Date d'inscription   Statut Membre Dernière intervention  
 
Merci.
La 2eme solution a l'air de marcher, mais si les 2 bits a tester sont a 1, la valeur 2 est stockée dans reponse (1 + 1). Il s'agit en fait d'effectuer une addition modulo 2, de telle sorte que 1+1 = 0
0
le père
 
i les 2 bits a tester sont a 1, la valeur 2 est stockée dans reponse (1 + 1)
C'est évident. C'est bien pour ça que j'ai dit que le résultat était dans le poids faible de REPONSE. C'est vrai que je n'avais pas précisé bit de poids faible, ça me semblait suffisamment évident comme ça.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
'sop Messages postés 12 Date d'inscription   Statut Membre Dernière intervention  
 
autant pour moi. C'était effectivement évident, mais j'ai lu trop vite et n'ai pas fait attention.

Merci pour la solution.
0