Assembleur 370 |
BC |
Branch on Condition |
Syntaxe
Paramètres
Nom |
Description |
M1 |
Ce paramètre permet d'indiquer un masque binaire sur 4 bits (représente les conditions de saut). |
D2 |
Ce paramètre permet d'indiquer un déplacement (offset) - valeur immédiate. |
X2 |
Ce paramètre permet d'indiquer un registre d'indexation (facultatif). |
B2 |
Ce paramètre permet d'indiquer un registre de base. |
Description
Cette instruction permet d'effectuer un saut à l'adresse d'un registre si le masque de l'instruction correspond sinon il passe à l'instruction suivante tout simplement.
Remarques
- L'instruction BC (Branch on Condition) permet de réaliser un saut conditionnel selon les bits du masque M1. Ce masque de 4 bits correspond à des résultats d'opérations
précédentes (zéro, négatif, débordement,...). Elle constitue la base des structures conditionnelles en assembleur 370.
- Le paramètre M1 est un masque binaire sélectionnant les conditions pour lesquelles le saut doit être effectué. Chaque bit représente un cas : par exemple, zéro,
négatif, positif, ou débordement. Si la condition actuelle correspond à un bit activé, alors le saut a lieu.
- Le saut s'effectue vers l'adresse calculée à partir de D2(X2,B2). D2 est un déplacement immédiat, X2 un registre d'indexation, et B2 un registre de base. Cette
combinaison permet un adressage souple et dynamique.
- Si aucune des conditions du masque M1 ne correspond à l'état du programme, le saut est ignoré. L'exécution continue alors simplement à l'instruction suivante. Cela
permet d'implémenter des tests et branches sans instructions supplémentaires.
- L'instruction BC est souvent utilisée après une instruction de comparaison (exemple C ou CR). La comparaison modifie le registre de condition, que BC teste ensuite.
C'est une manière classique de gérer des décisions en assembleur.
- L'usage de masques combinés dans M1 permet de tester plusieurs cas en une seule instruction. Par exemple, un masque B'1110' permet un saut si la condition est
différente de zéro. C'est un outil puissant pour simplifier le code de contrôle.
- Le registre X2 est optionnel, mais peut servir à indexer dynamiquement une table de branchement. Cela permet, par exemple, d'implémenter des switch/case ou des sauts
indirects. L'instruction BC devient alors un outil de contrôle complexe et efficace.
- BC est essentielle pour construire des structures conditionnelles, des boucles, ou des tests de fin. Son efficacité et sa souplesse en font une des instructions les
plus utilisées en assembleur 370. Une bonne compréhension de la logique conditionnelle est indispensable pour l'utiliser correctement.
Dernière mise à jour : Mardi, le 22 août 2017