Faire un xor en langage assembleur
Résolu
'sop
Messages postés
12
Statut
Membre
-
'sop Messages postés 12 Statut Membre -
'sop Messages postés 12 Statut Membre -
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
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:
- Xorlw
- Langage ascii - Guide
- Langage binaire - Guide
- Langage visual basic - Télécharger - Langages
- Clc langage jeune ✓ - Forum Mobile
- Pascal langage - Télécharger - Édition & Programmation
5 réponses
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
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
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
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
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.
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.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question