Syntaxe
|
ORR{S}{cond} Rd, Rn, Operand2
|
Paramètres
| Nom |
Description |
| S |
Ce paramètre optionnel permet d'indiquer le suffixe. Si ce paramètre est spécifié, les drapeaux de condition sont mise à jour dans le résultat de l'opérande |
| cond |
Ce paramètre optionnel permet d'indiquer le code de condition |
| Rd |
Ce paramètre permet d'indiquer le registre de destination. |
| Rn |
Ce paramètre permet d'indiquer le registre contenant le premier opérande. |
| operand2 |
Ce paramètre permet d'indiquer le deuxième opérande flexible. |
Description
Cette instruction permet d'effectuer un «Ou binaire» avec 2 opérandes.
Remarques
- L'instruction ORR effectue un OU bit à bit logique : L'instruction ORR réalise une opération OR logique entre les bits de deux opérandes. Chaque bit
du résultat vaut 1 si au moins l'un des bits correspondants dans les opérandes est à 1. C'est une opération standard dans le traitement logique des données.
- ORR peut être utilisée pour définir des bits spécifiques : Cette instruction est très utile lorsqu'on veut forcer certains bits à 1 dans une valeur
binaire. Par exemple, pour activer un drapeau dans un registre de configuration, on peut appliquer un masque avec ORR pour positionner les bits requis.
- L'un des opérandes peut être une constante transformée : Grâce à la flexibilité d'Operand2, ORR permet d'utiliser un second opérande immédiat
(constante) avec rotation encodée, ce qui est pratique pour construire des valeurs en mémoire ou appliquer des masques complexes dans une seule instruction.
- Elle peut remplacer certaines affectations conditionnelles : Combinée avec les suffixes conditionnels ({cond}), ORR peut être utilisée pour modifier
une valeur seulement si une certaine condition est remplie, évitant ainsi une branche dans le code, ce qui améliore la performance.
- Mise à jour des drapeaux avec le suffixe S : Le suffixe S permet de mettre à jour les drapeaux du programme (comme Z pour zéro ou N pour négatif). Cela
permet d'utiliser l'instruction ORR dans des structures de contrôle sans ajouter de comparaisons supplémentaires.
- Peut servir à initialiser ou construire une valeur : En utilisant plusieurs instructions ORR successives avec différents masques, on peut assembler
dynamiquement une valeur complexe à partir de plusieurs parties, par exemple pour former une adresse ou un identifiant spécial.
- Instruction inverse de BIC dans une certaine mesure : Alors que ORR sert à activer des bits, BIC est souvent utilisée pour les désactiver. Ensemble,
elles permettent de manipuler les bits à volonté : ORR pour ajouter des drapeaux, BIC pour les retirer.
- Peut être utilisée avec elle-même pour créer des effets sans effet : Dans certains cas, on utilise ORR Rd, Rn, #0 pour copier une valeur d'un registre
à un autre sans changer son contenu, mais tout en mettant à jour les drapeaux si besoin. C'est une alternative à MOV ou TST quand une logique spécifique est recherchée.
Dernière mise à jour : Dimanche, le 12 novembre 2017