| Assembleur 370 |
BAS |
| Branch and Save |
Syntaxe
Paramètres
| Nom |
Description |
| R1 |
Ce paramètre permet d'indiquer un registre où sera sauvegardée l'adresse de retour. |
| D2 |
Ce paramètre permet d'indiquer un déplacement (offset, 12 bits). |
| 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 spécifié et place les informations de liaisons dans un registre.
Remarques
- L'instruction BAS (Branch and Save) permet d'effectuer un saut tout en sauvegardant l'adresse de retour dans un registre. Elle est particulièrement utile pour appeler
des sous-programmes ou routines internes. Le retour s'effectue ensuite par une instruction utilisant la valeur stockée dans R1.
- Le registre R1 joue le rôle de registre de retour, en y plaçant l'adresse de l'instruction suivante. Cela permet de revenir à l'endroit exact d'où le saut a été fait.
Il est donc crucial de ne pas écraser cette valeur avant le retour.
- L'adresse de saut est calculée grâce au triplet D2(X2, B2). D2 est un déplacement immédiat, X2 un registre d'indexation (souvent 0), et B2 un registre de base. Ce
mécanisme rend l'adressage souple et adaptable aux structures de programme complexes.
- L'instruction BAS agit comme une alternative à BAL, mais s'utilise dans des contextes légèrement différents. Alors que BAL utilise une adresse calculée par mémoire,
BAS peut être combinée à des routines plus compactes. Elle s'adapte mieux à certains schémas de programmation structurée.
- Le registre X2 est optionnel, mais peut introduire une indexation dynamique lors du calcul d'adresse. Cela permet, par exemple, d'appeler différentes routines selon
une table ou un index. Ce comportement est précieux dans les structures répétitives ou conditionnelles.
- Le bon paramétrage de B2 est essentiel, car il contient l'adresse de base du segment mémoire visé. Une erreur sur ce registre peut rediriger l'exécution vers une zone
invalide. Une vérification rigoureuse de son contenu est donc indispensable avant appel.
- BAS est souvent suivi d'une instruction comme BR R1 pour retourner à l'appelant. Ce couple permet d'implémenter des appels simples sans pile, en utilisant uniquement
les registres. C'est un modèle fréquent dans les conventions assembleur sur IBM 370.
- BAS est une instruction efficace qui combine contrôle de flux et gestion de retour. Elle est bien adaptée aux appels directs sans recours à la mémoire pour entreposer
l'état. Sa simplicité la rend précieuse pour écrire un code clair et performant.
Dernière mise à jour : Mardi, le 22 août 2017