| Assembleur 370 |
LA |
| Load Address |
Syntaxe
Paramètres
| Nom |
Description |
| R1 |
Ce paramètre permet d'indiquer le registre général où l'on va entreposer l'adresse calculée. → Après l'exécution, R1 contient une valeur d'adresse (et non une donnée entreposée à cette adresse !). |
| D2(X2,B2) |
Ce paramètre permet d'indiquer l'adresse effective à calculer, basée sur : D2 : déplacement (offset), valeur constante, X2 : registre index (facultatif), B2 : registre de base. |
Description
Cette instruction permet de charger une adresse dans un registre.
Remarques
- L'instruction LA ne charge pas une donnée, mais une adresse mémoire dans un registre. Elle sert à calculer une adresse effective selon une base, un index et un
déplacement. C'est donc une opération purement arithmétique, sans accès réel à la mémoire pointée.
- Le registre R1 recevra le résultat du calcul d'adresse effectué avec D2(X2,B2). Cela permet de préparer un registre à contenir un pointeur vers une zone mémoire.
Très utile pour l'adressage indirect ou l'itération sur des structures.
- Contrairement à l'instruction L, LA n'accède pas à la mémoire pour lire une donnée. Elle se contente de faire une addition : R1 ← D2 + X2 + B2. Il faut donc
bien comprendre que la mémoire pointée n'est pas lue lors de l'exécution.
- L'utilisation de X2 permet de faire de l'indexation, ce qui est utile pour gérer des tableaux. En modifiant l'index dans X2, on peut calculer l'adresse du i-ème
élément d'une structure. C'est une technique courante en boucle de traitement.
- Cette instruction est idéale pour préparer des adresses qui seront utilisées par d'autres instructions. Par exemple, on peut calculer une adresse avec LA, puis s'en
servir avec ST ou MVC. Elle joue donc un rôle important dans l'organisation mémoire.
- Le champ B2 permet d'introduire un registre de base, pratique pour les programmes en mémoire relative. Il permet d'écrire des programmes modulaires et relogeables
facilement. Avec un bon registre de base, LA devient très souple.
- LA est souvent utilisée en conjonction avec des instructions de type boucle, comme BXLE. On s'en sert pour initialiser des pointeurs ou calculer dynamiquement des
adresses successives. Elle est donc essentielle dans le traitement de séquences.
- Cette instruction est rapide, car elle évite l'accès mémoire : c'est un simple calcul d'adresse. Elle est très performante dans tous les cas où l'on doit manipuler
des pointeurs. Une bonne maîtrise de LA est indispensable pour coder efficacement en assembleur 370.
Dernière mise à jour : Mardi, le 22 août 2017