BIC Instruction
Bonjour j'ai juste une question fondamentale sur certains bits de compensation dans l'Assemblée. Voici ce que je suis en train ci-dessous.
MOV R0, #OxFFFFFFFF ;Load R0 with the HEX Values FFFFFFFF
BIC R0, R0, #0xBF ;This should set bit 7 from my understanding as B is 1011 in hex
Lors de l'exécution de ce qui précède, il place la valeur suivante dans R0 (0xFFFFFF4F), je me demande pourquoi est-ce?
Si je fais cela, peu clair, il met la valeur 0xFFFFFFBF
MOV R0, #OxFFFFFFFF ;Load R0 with the HEX Values FFFFFFFF
BIC R0, R0, #00000000000000000000000001000000b
Quelqu'un peut-il m'aider à comprendre ces résultats?
désolé c'est le genre de sans relation, mais peut BIC être écrit en C?
OriginalL'auteur mitchnufc | 2012-02-23
Vous devez vous connecter pour publier un commentaire.
Je trouve intéressant que l'assembleur (gaz) vous permet d'essayer mov avec plus de 8 bits significatifs sans erreur...ça encode un mvn pour vous.
- Je obtenir 0xFFFFFF40 qui est la réponse attendue.
Si vous voulez régler le bit 7, puis
Ou vous dire que vous vouliez régler le bit 6
si tu voulais enlever tous les bits sauf bit 6, ne laissant que peu 6 ensemble.
Si vous voulez quitter tous, mais le bit 6 set clear (bit 6) (bic=peu)
Ou vous tentiez de le faire
qui donne 0x00000040, qui est le même que
à l'exception de la dernière, en utilisant moins d'instructions et registres
OriginalL'auteur old_timer
Je pense que vous verrez mieux si vous pensez à ce que BIC moyen/ne: BIC Rd, Rn est l'acronyme de "Rd ET PAS Rn".
Donc, avec votre dernier exemple:
Donc, avec BIC Rd, #0x40 vous êtes centre de bits numéro 7 de la Rd. Même raisonnement s'applique à votre ancien exemple.
Espère que cette aide.
OriginalL'auteur Fernando
Je test le cas avec arm-none-eabi-gcc 4.8.2 sur un Arduino Due, mais le premier cas est différent.
L'autre cas est le même.
Donc le résultat de la première affaire est claire comme @Fernando expliqué ci-dessus.
La BIC (Peu Clair) instruction effectue une opération sur les bits dans Rn avec les compléments sont des bits correspondants dans la valeur de l'Opérande2. Vous pouvez le voir, il ici.
OriginalL'auteur LuoPeng