Syntaxe
Paramètres
| Nom |
Description |
| R1 |
Ce paramètre permet d'indiquer le registre contenant la première opérande. Il reçoit le résultat de l'addition. |
| D2 |
Ce paramètre permet d'indiquer un déplacement (offset) sur 12 bits (valeur immédiate, 0 à 4095). C'est une partie de l'adresse mémoire. |
| X2 |
Ce paramètre permet d'indiquer un registre général (0 à 15) servant de registre d'index (facultatif, souvent utilisé pour parcourir des tableaux). |
| B2 |
Ce paramètre permet d'indiquer un registre général utilisé comme registre de base, contenant l'adresse de base du segment mémoire. |
Description
Cette instruction permet d'effectuer une addition d'une adresse contenant un double mot (4 octets) à un registre.
Remarques
- L'instruction A effectue une addition entre une valeur en mémoire (4 octets) et le contenu d'un registre. Le résultat est stocké dans le registre spécifié en
premier (R1). Elle est utilisée pour manipuler directement des entiers sur 32 bits.
- Le second opérande est une adresse effective calculée à partir de D2, X2 et B2. Cette adresse permet d'accéder dynamiquement à des données en mémoire. Cela rend
l'instruction adaptée à la navigation dans des structures complexes.
- L'usage de X2 comme registre d'index est facultatif mais utile pour parcourir des tableaux. Il permet d'ajouter un décalage variable au déplacement D2. C'est un
mécanisme classique en programmation bas niveau.
- B2 représente le registre de base contenant l'adresse de départ. Combiné avec D2 (offset) et X2 (index), il forme une adresse mémoire complète.
Cela suit le modèle d'adressage indirect typique du S/370.
- L'opérande mémoire doit être aligné sur un mot de 4 octets. Un mauvais alignement peut entraîner une exception d'exécution. C'est une contrainte importante à
respecter sur cette architecture.
- L'instruction ne modifie pas l'opérande mémoire, elle lit uniquement sa valeur. Seul le registre R1 est modifié avec le résultat de l'addition. Cela garantit que
les données sources restent intactes.
- Les indicateurs (drapeaux) du programme peuvent être affectés, notamment le code condition. Cela permet à l'instruction suivante de tester si le résultat est nul, négatif,
ou en dépassement. Ces drapeaux facilitent les enchaînements logiques conditionnels.
- A est une des instructions arithmétiques de base du S/370, souvent utilisée avec S (subtract) et AR
(add register). Elle permet de traiter directement les données en mémoire sans devoir tout charger au préalable. Son efficacité en fait un pilier des traitements
numériques en assembleur.
Dernière mise à jour : Mardi, le 22 août 2017