| Assembleur 370 |
BXH |
| Branch on Index High |
Syntaxe
Paramètres
| Nom |
Description |
| R1 |
Ce paramètre permet d'indiquer un registre d'index → incrémenté à chaque itération |
| R3 |
Ce paramètre permet d'indiquer un registre borne (limite supérieure) à atteindre. |
| D2 |
Ce paramètre permet d'indiquer un déplacement (offset) à ajouter à l'adresse de base. |
| B2 |
Ce paramètre permet d'indiquer un registre de base → contient l'adresse de saut. |
Description
Cette instruction permet d'incrémenter le registre désigné comme index et d'effectuer un saut à l'adresse si le condition de comparaison d'inférieur est satisfaite sinon il passe à l'instruction suivante tout simplement.
Remarques
- L'instruction BXH permet de contrôler des boucles avec incrément automatique du registre d'index (R1) à chaque itération. Cela évite d'écrire une instruction
d'incrément séparée, ce qui simplifie le code de boucle. Elle est particulièrement adaptée aux boucles croissantes avec borne supérieure.
- La comparaison se fait après l'incrément du registre R1 avec la valeur contenue dans R3. Si R1 devient strictement supérieur à R3, l'instruction provoque un saut
vers l'adresse calculée avec D2(B2). Sinon, le programme continue normalement avec l'instruction suivante.
- Le registre R3 sert de limite supérieure pour la comparaison et contrôle la fin de boucle. Cette structure permet de préciser dynamiquement la borne d'arrêt d'un
traitement répétitif. C'est une manière efficace de gérer des itérations avec une condition de dépassement.
- Le paramètre D2(B2) définit l'adresse de saut cible, calculée comme dans d'autres instructions du S/370. Cela permet de construire des branches indirectes dépendant
d'une base et d'un déplacement. Le saut est donc conditionné à l'issue de la comparaison entre l'index et la borne.
- Le registre R1 est incrémenté automatiquement, ce qui économise une instruction par itération. Cela améliore l'efficacité du code dans les boucles de traitement
d'éléments, comme des tableaux. Ce mécanisme renforce la lisibilité et la compacité des séquences de boucles.
- L'instruction est très utile dans les traitements itératifs croissants, notamment dans les balayages de structures en mémoire. Elle remplace avantageusement une
combinaison d'incrément, comparaison et saut. Cela réduit le nombre d'instructions et les erreurs de boucle.
- Le nom BXH reflète la logique de "Branch on Index High", c'est-à-dire que le saut se produit uniquement si l'index dépasse la borne. Cette logique est opposée à
l'instruction BXLE, qui saute si l'index est inférieur ou égal. Cela permet une variété de contrôles de boucle selon les besoins du programmeur.
- BXH est une instruction puissante pour le contrôle de boucle structuré, bien qu'un peu spécifique. Elle est principalement utilisée dans les programmes de bas niveau
ou les optimisations système. Sa maîtrise facilite l'écriture de boucles efficaces et compactes en assembleur S/370.
Dernière mise à jour : Mardi, le 22 août 2017