| Assembleur 370 |
BCR |
| Branch on Condition Register |
Syntaxe
Paramètres
| Nom |
Description |
| M1 |
Ce paramètre permet d'indiquer un masque conditionnel à 4 bits (spécifie quand sauter). |
| R2 |
Ce paramètre permet d'indiquer un registre contenant l'adresse de saut. |
Description
Cette instruction permet d'effectuer une addition d'une adresse contenant un double mot (4 octets) à un registre.
Remarques
- L'instruction BCR (Branch on Condition Register) permet de réaliser un saut conditionnel en fonction d'un masque conditionnel et d'un registre contenant
l'adresse de destination. Le masque M1 spécifie les conditions dans lesquelles le saut doit avoir lieu. Cela permet une grande flexibilité dans le contrôle du
flux d'exécution.
- Le paramètre M1 est un masque conditionnel de 4 bits, chaque bit représentant une condition de saut, telle que zéro, négatif, ou d'autres statuts d'exécution.
Lorsque l'état de la condition correspond à l'un des bits activés dans M1, l'instruction effectue le saut. Cela permet de tester plusieurs conditions simultanément
en un seul test.
- Le registre R2 contient l'adresse de destination du saut, permettant ainsi un adressage dynamique. Cela rend cette instruction utile pour les sauts indirects,
où l'adresse de la cible est déterminée au moment de l'exécution. L'adresse dans R2 peut être calculée ou extraite d'un autre registre au préalable.
- BCR permet d'implémenter des structures de contrôle plus complexes, comme des boucles conditionnelles et des tests multiples.s Elle est souvent utilisée après une
instruction de comparaison pour sauter si certaines conditions sont remplies. Elle offre ainsi une manière optimisée de gérer les décisions logiques dans un programme.
- R2 peut contenir n'importe quelle adresse mémoire valide, et il est souvent utilisé pour dynamiser les points d'appel dans des routines ou des tables de branchement.
Cela permet d'implémenter des structures comme des tables de redistribution ou des appels indirects. Cette flexibilité est essentielle pour des programmes modulaires
ou orientés objets.
- Contrairement à l'instruction BC, où l'adresse de saut est calculée à partir d'un registre de base et d'un déplacement, BCR utilise
un registre pour entreposer directement l'adresse cible. Cela rend l'instruction plus rapide dans les cas où l'adresse de destination est déjà connue. Elle élimine le
besoin de calculs d'adressage supplémentaires.
- En utilisant des masques combinés dans M1, il est possible de vérifier plusieurs conditions dans un seul test. Par exemple, un masque B'1100' permettra de tester si
les conditions sont soit zéro, soit négatif. Cette capacité à combiner des tests rend l'instruction très utile pour des branchements complexes.
- BCR est idéale pour des programmes dynamiques où le flux d'exécution doit être flexible, avec des sauts calculés à la volée. Elle permet un contrôle précis des
branchements, basé sur l'état actuel des conditions. Cela rend l'instruction indispensable dans des systèmes qui nécessitent des tests d'état complexes et une gestion de
l'exécution conditionnelle.
Dernière mise à jour : Mardi, le 22 août 2017