| Assembleur 370 |
BXLE |
| Branch on Index Low/Equal |
Syntaxe
Paramètres
| Nom |
Description |
| R1 |
Ce paramètre permet d'indiquer un registre d'index à incrémenter. |
| R3 |
Ce paramètre permet d'indiquer un registre contenant le pas d'incrément. |
| D2 |
Ce paramètre permet d'indiquer un déplacement (offset, souvent 0). |
| B2 |
Ce paramètre permet d'indiquer un registre de base pour calculer 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 ou égale est satisfaite sinon il passe à l'instruction suivante tout simplement.
Remarques
- L'instruction BXLE combine trois opérations en une seule : incrément de l'index, comparaison, et saut conditionnel. Elle est idéale pour les boucles à incrément
progressif, comme les parcours de tableaux. Elle permet de simplifier et raccourcir le code de contrôle de boucle.
- Le registre R1 est utilisé comme index et est automatiquement incrémenté par la valeur contenue dans R3 à chaque exécution. Cela évite l'utilisation d'une instruction
séparée pour l'incrémentation. C'est une solution élégante pour les boucles à pas variable.
- Le saut s'effectue si la nouvelle valeur de R1 est inférieure ou égale à R3, ce qui permet un contrôle souple de la condition d'arrêt. Cela permet de maintenir la
boucle tant que l'index reste dans les limites définies. Sinon, l'exécution continue avec l'instruction suivante.
- Le couple D2(B2) calcule l'adresse de saut effective, comme dans la majorité des instructions de branchement. Cela permet de pointer vers l'étiquette de début de
boucle ou tout autre point logique. La flexibilité de l'adresse cible facilite les structures de boucle complexes.
- BXLE est souvent utilisée avec un offset D2 égal à 0, ce qui signifie que le saut s'effectue à l'adresse contenue directement dans le registre de base. Cela renforce
sa simplicité pour des boucles classiques avec un point d'entrée fixe. Néanmoins, l'offset peut être utilisé pour des cas plus sophistiqués.
- Le registre R3, contrairement à son usage dans BXH, ne représente pas une borne, mais un pas d'incrément. Cela permet d'ajuster la vitesse de progression dans
la boucle, par exemple pour sauter des éléments. Cela rend BXLE plus flexible dans les cas de traitement discontinu.
- La logique de BXLE est complémentaire de BXH, qui teste un dépassement de borne. BXLE maintient la boucle tant que l'index n'a pas dépassé la limite, ce qui est utile
pour des itérations contrôlées strictement. Le choix entre BXH et BXLE dépend du type de comparaison recherché.
- BXLE est une instruction compacte et efficace pour implémenter des boucles comptées avec incrément automatique. Elle est très utile dans des algorithmes bas niveau ou
des programmes systèmes où l'optimisation du nombre d'instructions est cruciale. Son bon usage améliore à la fois la performance et la lisibilité du code assembleur.
Dernière mise à jour : Mardi, le 22 août 2017