Systèmes embarqués et firmware
En langage C, quelle écriture met à 0 uniquement le bit 3 du registre reg sans modifier les autres bits ?
- Areg &= ~(1 << 3);
- Breg |= ~(1 << 3);
- Creg &= (1 << 3);
Afficher la réponse et l'explication
Réponse : A. reg &= ~(1 << 3);
« ~(1 << 3) » est une valeur dont seul le bit 3 vaut 0 et tous les autres 1. Un AND (&) avec cette valeur met toujours le bit 3 à 0, et les autres bits, combinés par AND avec 1, restent inchangés. Les quatre opérations — mise à 1 par OR, mise à 0 par AND NOT, inversion par XOR (^) et test par AND — sont les formes de base de la manipulation des registres dans un micrologiciel.
Continuer : 9 autres questions sur Systèmes embarqués et firmware