| Assembleur 370 |
LNR |
| Load Negative |
Syntaxe
Paramètres
| Nom |
Description |
| R1 |
Ce paramètre permet d'indiquer le registre de destination. Il recevra le résultat (la version négative de R2, si nécessaire). |
| R2 |
Ce paramètre permet d'indiquer le registre source, contenant la valeur à tester (et éventuellement inverser). |
Description
Cette instruction permet d'effectuer le complément de la valeur absolue d'une registre.
Remarques
- LNR copie la valeur de R2 dans R1, en la rendant négative si elle ne l'est pas déjà. Si R2 est strictement positif, R1 recevra son opposé. Si R2 est nul ou négatif,
sa valeur est recopiée telle quelle dans R1.
- Cette instruction est utilisée pour garantir qu'un registre contient une valeur négative ou nulle. Elle agit comme une sorte de normalisation arithmétique vers le
signe négatif. Pratique dans des comparaisons ou traitements nécessitant des bornes négatives.
- Le registre R1 peut être identique à R2 si on souhaite modifier la valeur en place. Dans ce cas, R2 est écrasé par sa version négative ou reste inchangé. Cela permet
un traitement direct sans registre intermédiaire.
- Aucune exception n'est levée si le contenu de R2 est déjà négatif ou nul. LNR est donc une instruction sûre à exécuter dans tous les cas. Elle ne modifie pas l'état
des drapeaux conditionnels du programme.
- Le complément est effectué en arithmétique sur 32 bits signés. Par exemple, si R2 contient +5, R1 contiendra -5 (soit FFFFFFFB en hexadécimal). La représentation
binaire respecte le complément à deux.
- LNR est utile dans des contextes de normalisation de valeurs avant des opérations comme MIN, MAX ou ABS. Elle permet de forcer un registre à contenir une valeur ≤ 0
sans branchement conditionnel. Cela allège la logique de contrôle dans un algorithme.
- Cette instruction fait partie des instructions de type RR (Register-to-Register). Elle ne nécessite aucun accès mémoire, ce qui la rend rapide et efficace. Utilisée
notamment dans des traitements numériques ou algorithmes d'optimisation.
- Bien que simple, LNR peut jouer un rôle important dans le traitement de signes, notamment pour des routines mathématiques. Elle fait partie des instructions
complémentaires comme LTR (Test Register) ou LPR (Load Positive). Son usage réfléchi contribue à la clarté du code assembleur.
Dernière mise à jour : Mardi, le 22 août 2017