| Assembleur 370 |
STM |
| Store Multiple |
Syntaxe
Paramètres
| Nom |
Description |
| R1 |
Ce paramètre permet d'indiquer le premier registre de l'intervalle à entreposer. Le contenu de ce registre sera stocké en premier en mémoire. |
| R3 |
Ce paramètre permet d'indiquer le dernier registre de l'intervalle à entreposer. Tous les registres de R1 à R3 (inclus) seront entreposés. Si R1 = R3, seul un registre est entreposé. Si R1 > R3, cela peut provoquer un wrap-around (entrepose de R1 à R15, puis de R0 à R3). |
| D2(B2) |
Ce paramètre permet d'indiquer l'adresse mémoire de base pour l'entreposage. D2 : déplacement (valeur immédiate), B2 : registre de base contenant une adresse. L'adresse effective est calculée comme : Adresse = D2 + (valeur contenue dans B2). |
Description
Cette instruction permet de charger une opérande dans l'ensemble de registre situé dans l'intervalle spécifié.
Remarques
- L'instruction STM permet de entreposer plusieurs registres à la suite en mémoire, à partir de l'adresse spécifiée. Elle est très utile pour sauvegarder rapidement
un contexte, comme lors d'un appel de sous-programme. C'est une instruction efficace pour préserver l'état d'un programme.
- Le couple R1,R3 définit un intervalle continu de registres à stocker, incluant les deux bornes. Cela signifie que jusqu'à 16 registres peuvent être entreposés en
une seule instruction. C'est un gain de performance comparé à une série de ST.
- Si R1 est supérieur à R3, l'instruction effectue un wrap-around du registre 15 vers le registre 0. Ce comportement peut surprendre, mais il est défini par
l'architecture. Il faut donc être vigilant pour éviter des écritures imprévues en mémoire.
- Chaque registre est copié en mémoire sous forme de mot de 4 octets, dans l'ordre croissant. L'espace mémoire requis dépend donc du nombre de registres à
entreposer. Un intervalle de 64 octets est nécessaire pour 16 registres.
- Le champ D2(B2) sert à calculer l'adresse effective de début de l'entreposage. D2 est une constante, et B2 contient la base de l'adresse. Les registres sont ensuite
entreposés à la suite, en mémoire contiguë.
- L'instruction STM est particulièrement utile pour sauvegarder l'état d'un programme avant interruption. Combinée avec LM (Load Multiple), elle facilite le
sauvegarde/restauration rapide du contexte. C'est une pratique standard dans les programmes systèmes.
- La logique de stockage de STM ne modifie aucun des registres sources. Elle effectue uniquement une écriture mémoire, ce qui en fait une instruction non destructive.
Les registres restent intacts après l'exécution.
- Bien utilisée, STM permet une gestion structurée de la pile ou de zones de sauvegarde temporaires. Elle évite l'écriture manuelle répétitive de plusieurs
instructions ST. Cela rend le code plus compact, clair et rapide à exécuter.
Dernière mise à jour : Mardi, le 22 août 2017