Assembleur 370 |
NI |
aNd Immediate |
Syntaxe
Paramètres
Nom |
Description |
D1(B1) |
Ce paramètre permet d'indiquer l'opérande mémoire sur lequel l'opération logique ET sera effectuée. Il se compose de deux éléments : D1 : Un registre ou une zone mémoire à partir de laquelle l'opération sera effectuée, (B1) : Un registre ou un pointeur d'adresse qui spécifie l'adresse de la donnée dans la mémoire. |
I2 |
Ce paramètre permet d'indiquer la valeur immédiate (ou constante) avec laquelle l'opérande mémoire (spécifié par D1(B1)) sera comparé via l'opération logique ET. La valeur immédiate est généralement un nombre ou un bitmask utilisé pour modifier spécifiquement certains bits de la donnée à l'adresse mémoire. |
Description
Cette instruction permet d'effectuer une opération de «Et binaire» d'une valeur immédiate à un registre.
Remarques
- L'instruction NI réalise une opération ET binaire entre un octet mémoire et une valeur immédiate. Elle agit directement sur l'adresse mémoire spécifiée et remplace
l'octet par le résultat du ET. Cette opération permet de masquer certains bits dans un octet.
- Le paramètre D1(B1) indique l'adresse mémoire de l'octet à modifier. D1 est un déplacement (offset), B1 est un registre de base qui contient l'adresse de départ.
Cette adresse pointe vers l'octet sur lequel l'opération s'effectue.
- Le second paramètre I2 est une valeur immédiate codée dans l'instruction. Elle représente un masque binaire, souvent utilisé pour forcer certains bits à zéro.
Elle n'est pas lue depuis la mémoire ni calculée dynamiquement.
- L'instruction NI est très utile pour désactiver des indicateurs, effacer des bits de statut ou formater des données binaires. Elle permet de contrôler finement le
contenu d'un octet en préservant certains bits et en réinitialisant d'autres. Elle est donc souvent utilisée dans les routines système et de bas niveau.
- Cette opération n'agit que sur un seul octet à la fois, contrairement à d'autres instructions qui travaillent sur des zones. Elle est donc parfaitement adaptée pour
des modifications ciblées à des adresses précises. Cela en fait un outil précis mais limité aux traitements unitaires.
- L'instruction modifie directement le contenu mémoire sans utiliser de registre général pour le traitement. Cela permet une économie de registres dans le programme, ce
qui est essentiel en environnement contraint. Elle évite aussi des étapes de chargement et d'entreposage.
- Cette instruction est purement logique et n'effectue aucun test de condition. Elle ne met pas à jour les registres de condition, donc ne doit pas être utilisée pour
déclencher une branche conditionnelle. Son usage est strictement réservé aux modifications binaires locales.
- NI fait partie d'une famille d'instructions immédiates comme OI (OR Immediate) ou XI (eXclusive OR Immediate). Elle est particulièrement utile en conjonction
avec ces instructions pour manipuler des drapeaux ou des octets de contrôle. Cela permet d'implémenter des logiques simples sans boucle ni comparaison explicite.
Dernière mise à jour : Mardi, le 22 août 2017