| Assembleur 370 |
SH |
| Subtract Halfword |
Syntaxe
Paramètres
| Nom |
Description |
| R1 |
Ce paramètre permet d'indiquer un registre général (parmi R0 à R15). Il contient : Le premier opérande (le diminuende) et il recevra le résultat de la soustraction. |
| D2(X2,B2) |
Ce paramètre permet d'indiquer l'adresse mémoire du second opérande (le sous-trahend), étant un halfword signé (2 octets). L'adresse effective est calculée comme suit : Adresse effective = D2 + contenu de X2 + contenu de B2. D2 = déplacement (offset), X2 = registre d'index (facultatif), B2 = registre de base. |
Description
Cette instruction permet d'effectuer la soustraction d'une opérande de 2 octets à un registre.
Remarques
- L'instruction SH permet de soustraire une valeur signée de 2 octets (halfword) en mémoire à un registre. Cela est utile lorsqu'on travaille avec des entiers courts,
économisant ainsi de l'espace mémoire. Elle évite d'avoir à charger et convertir manuellement une valeur halfword en registre.
- Le registre R1 contient le diminuende (valeur de départ) et reçoit le résultat de la soustraction. La valeur originale est donc remplacée après l'opération. Il faut
s'assurer que cette modification est intentionnelle.
- Le second opérande est toujours une valeur mémoire encodée sur 16 bits avec un signe. Ce format permet d'effectuer des soustractions avec des nombres positifs ou
négatifs. Une mauvaise interprétation du signe peut entraîner des erreurs de logique.
- L'adresse mémoire de l'opérande est construite dynamiquement à partir de D2 + X2 + B2. Ce système d'adressage rend l'instruction souple pour des accès indexés ou
relatifs. Il est essentiel que la somme pointe vers un emplacement mémoire valide.
- Cette instruction ne peut pas effectuer une soustraction entre deux registres directement. Elle impose une lecture depuis la mémoire pour le sous-trahend.
Il faut utiliser l'instruction SR si on souhaite une opération registre-à-registre.
- Les indicateurs de condition (Condition Code) sont mis à jour après exécution. Ils indiquent si le résultat est nul, négatif ou positif, ce qui permet un branchement
conditionnel. Ces indicateurs sont précieux dans la logique de contrôle de programme.
- Le format "halfword" limite la valeur du sous-trahend à la plage -32 768 à +32 767. Cela suffit dans de nombreux cas, mais peut poser problème pour de grands écarts.
Des vérifications sont parfois nécessaires pour éviter des dépassements de capacité.
- SH est efficace dans des boucles traitant des données numériques compactes, comme des tableaux d'entiers courts. Elle favorise des traitements rapides sans conversion
préalable en format fullword. C'est une instruction typiquement utilisée dans du code optimisé en espace.
Dernière mise à jour : Mardi, le 22 août 2017