| Assembleur 370 |
LPR |
| Load Postive Registers |
Syntaxe
Paramètres
| Nom |
Description |
| R1 |
Ce paramètre permet d'indiquer le registre de destination. Il recevra la valeur positive (ou nulle) obtenue à partir de R2. |
| R2 |
Ce paramètre permet d'indiquer le registre source, contenant une valeur signée de 32 bits. |
Description
Cette instruction permet d'effectuer la valeur absolue d'une registre.
Remarques
- LPR permet de copier la valeur absolue de R2 dans R1. Autrement dit, si R2 est négatif, son opposé est placé dans R1 ; sinon, sa valeur est recopiée telle quelle.
C'est une façon efficace de forcer une valeur à être positive ou nulle.
- Cette instruction agit directement sur des valeurs signées sur 32 bits, en complément à deux. Si R2 contient -7, R1 contiendra +7 après exécution. Elle est souvent
utilisée dans les traitements numériques ou statistiques.
- LPR ne déclenche pas d'exception, quelle que soit la valeur de R2. Elle est donc sûre à exécuter dans tout contexte, même sans tester la valeur au préalable.
Cela évite les branches conditionnelles explicites.
- On peut utiliser le même registre pour R1 et R2, ce qui permet une modification en place. Par exemple, LPR R4,R4 transforme directement le contenu de R4 en sa valeur
absolue. C'est pratique pour économiser des registres temporaires.
- LPR est complémentaire de LNR, qui force une valeur à être négative ou nulle. Ces deux instructions facilitent la gestion du signe d'un entier sans comparaisons.
Elles sont particulièrement utiles dans les algorithmes mathématiques.
- Cette instruction ne modifie aucun drapeau conditionnel du programme. Cela signifie qu'elle ne perturbe pas l'environnement d'exécution pour les instructions suivantes.
On peut donc l'utiliser en toute transparence dans un flot logique.
- Comme LPR est une instruction RR (register-to-register), elle n'accède pas à la mémoire. Elle est rapide et efficace, et bien adaptée aux boucles ou traitements massifs.
Son coût d'exécution est minimal.
- LPR est utile dans des contextes où le signe n'a pas d'importance ou doit être ignoré. Par exemple, dans un calcul de distance ou de module. Elle garantit une valeur
toujours positive, sans avoir besoin de test explicite.
Dernière mise à jour : Mardi, le 22 août 2017