| Assembleur 370 |
EX |
| Execute |
Syntaxe
Paramètres
| Nom |
Description |
| R1 |
Ce paramètre permet d'indiquer le registre de destination. Ce registre contient l'adresse de la routine ou du programme que l'on souhaite exécuter. Le registre R1 est donc utilisé pour spécifier l'adresse de départ de l'exécution. |
| D2(X2,B2) |
Ce paramètre permet d'indiquer l'adresse effective de la routine à exécuter. Cela permet de calculer l'adresse mémoire où l'exécution doit commencer. D2 : déplacement (offset en octets), X2 : registre d'index (optionnel), B2 : registre de base, Adresse effective = D2 + (X2) + (B2) |
Description
Cette instruction permet d'exécuter le contenu du registre spécifié.
Remarques
- L'instruction EX permet l'exécution dynamique d'une autre instruction, stockée en mémoire. Elle est très utile lorsqu'on souhaite modifier certains paramètres au
moment de l'exécution, comme une longueur variable. C'est une forme d'indirection donnant une grande souplesse d'exécution.
- Le registre R1 contient généralement une valeur utilisée pour modifier l'instruction ciblée avant son exécution. Par exemple, on peut s'en servir pour injecter
dynamiquement une longueur dans une instruction MVC. Cela permet de créer du code adaptable sans dupliquer plusieurs variantes d'instructions.
- Le second opérande D2(X2,B2) désigne l'adresse de l'instruction à exécuter. Cette instruction est souvent une instruction de type move, compare, ou encore un appel
de service. Elle est entreposée en mémoire et non écrite en dur dans le code courant.
- EX est particulièrement employée avec des instructions qui acceptent une longueur variable, comme MVC ou CLC. Le registre R1 fournit alors la longueur dans son
second octet (R1+1), ce qui permet de moduler l'instruction exécutée. Cela permet de manipuler des chaînes de taille dynamique efficacement.
- Bien que puissante, EX est une instruction délicate à utiliser. Une erreur dans l'instruction ciblée ou dans les registres utilisés peut provoquer des résultats
imprévisibles. Il faut bien s'assurer que l'instruction pointée est correcte et modifiable.
- L'instruction EX ne modifie pas elle-même le flot d'exécution du programme (pas de saut). Elle exécute une instruction en mémoire comme si elle était écrite à cet
endroit du code. L'exécution se poursuit ensuite normalement après le EX.
- EX est souvent utilisée dans des routines d'impression, d'édition ou de copie de champs de longueur variable. Plutôt que de coder une série d'instructions MVC, on
prépare un modèle et on l'exécute selon les besoins. Cela réduit le volume de code et améliore la flexibilité.
- Il est crucial que l'instruction cible d'un EX soit autoportante et adaptée à l'exécution déportée. Par exemple, elle ne doit pas contenir de sauts relatifs à son
emplacement mémoire. Sinon, l'exécution pourrait accéder à une zone mémoire inattendue et corrompre les données.
Dernière mise à jour : Mardi, le 22 août 2017