| Assembleur 370 |
BAL |
| Branch and Link |
Syntaxe
Paramètres
| Nom |
Description |
| R1 |
Ce paramètre permet d'indiquer un registre où sera entreposée l'adresse de retour (instruction suivante après BAL). |
| D2 |
Ce paramètre permet d'indiquer un déplacement (offset de 12 bits) - 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 pour calculer l'adresse effective. |
Description
Cette instruction permet d'effectuer un saut à l'adresse spécifié et place les informations de liaisons dans un registre.
Remarques
- L'instruction BAL (Branch and Link) permet d'effectuer un saut vers une autre adresse tout en conservant le point de retour. Elle enregistre dans R1
l'adresse de l'instruction suivante, facilitant le retour après l'exécution d'une sous-routine. C'est une méthode classique pour implémenter des appels de procédures.
- Le registre R1 joue un rôle essentiel en stockant l'adresse de retour. Cela permet de revenir facilement à l'endroit où le saut a été effectué. Il est donc crucial
de choisir un registre non utilisé ailleurs pour éviter toute perte d'information.
- Le paramètre D2(X2, B2) est utilisé pour calculer l'adresse de destination du saut. D2 est un déplacement immédiat (sur 12 bits), X2 un registre d'indexation optionnel,
et B2 un registre de base. Ce système offre une grande souplesse dans le calcul dynamique d'adresses.
- L'instruction BAL n'affecte pas les registres de données, ce qui permet un appel propre. Elle modifie uniquement R1 et le compteur ordinal (adresse d'exécution).
Cela facilite l'implémentation de sous-routines imbriquées ou récursives.
- Le registre X2 est souvent mis à 0 si l'indexation n'est pas requise. Cependant, il peut être utile pour faire varier dynamiquement l'adresse de saut. Cela permet une
programmation plus flexible, par exemple dans les tables de branchement.
- B2 est indispensable pour pointer vers la base mémoire utilisée par le saut. Il doit contenir une adresse valide, sinon le programme pourrait tenter d'exécuter du
code invalide. Une mauvaise configuration de B2 est une cause fréquente d'erreurs en assembleur.
- BAL est souvent utilisé en tandem avec l'instruction BR (Branch Register). Après le traitement de la sous-routine, on effectue un BR R1 pour revenir à l'instruction
suivant le BAL. Ce couple BAL/BR est la base du contrôle de flux structuré en assembleur.
- En plus de sa fonction de saut, BAL joue le rôle de mécanisme de liaison. Il est donc un élément central pour la gestion des appels, remplaçant des piles classiques
dans certains cas. Une bonne maîtrise de BAL est indispensable pour écrire des programmes modulaires et structurés en Assembleur 370.
Dernière mise à jour : Mardi, le 22 août 2017