| Assembleur 370 |
NC |
| aNd Characters |
Syntaxe
Paramètres
| Nom |
Description |
| NC |
Ce paramètre permet d'indiquer une représentation de l'instruction "No Compare", effectuant une opération de comparaison sans changer le contenu des registres. Elle compare la valeur de deux opérandes et définit des indicateurs de condition en fonction du résultat. |
| D1(L,B1) |
Ce paramètre permet d'indiquer le premier opérande de la comparaison. Il est généralement constitué de deux parties : D1 : représente un registre ou une zone mémoire., (L, B1) : représente un déplacement ou une adresse mémoire avec un décalage. Le paramètre L pourrait être une longueur ou un nombre de mots à traiter et B1 serait le registre ou le pointeur qui spécifie l'adresse de départ. |
| D2(B2) |
Ce paramètre permet d'indiquer le second opérande de la comparaison. Cela ressemble à D1 : D2 représente une autre zone mémoire ou registre à comparer, (B2) est généralement un registre spécifiant l'adresse ou le décalage pour le second opérande. |
Description
Cette instruction permet d'effectuer une opération de «Et binaire» d'un bloc de données à un autre bloc de données.
Remarques
- L'instruction NC applique un ET binaire (AND logique) entre deux blocs de mémoire, octet par octet. Contrairement à son nom trompeur (pouvant faire penser à une
comparaison), elle modifie bien la mémoire destination. Chaque octet de la zone destination est mis à jour avec le résultat du ET binaire.
- Le premier opérande D1(L,B1) représente la zone de destination où les résultats du ET seront écrits. La longueur L détermine combien d'octets seront traités, jusqu'à
un maximum de 256. C'est cette zone qui sera modifiée à l'issue de l'instruction.
- Le second opérande D2(B2) désigne la zone mémoire source, dont le contenu sera combiné au premier opérande. Cette zone n'est pas modifiée, elle sert uniquement de
référence pour le ET logique. Elle doit contenir au moins autant d'octets que L.
- Cette instruction est très utile pour appliquer un masque binaire à une chaîne de caractères ou à des données binaires. Elle permet, par exemple, d'effacer des bits
spécifiques tout en laissant les autres inchangés. C'est une méthode courante pour traiter des données de contrôle ou des drapeaux.
- Contrairement à certaines instructions logiques sur registres, NC travaille uniquement en mémoire, pas dans les registres. Elle est donc bien adaptée aux traitements
sur des zones mémoire structurées comme des champs d'enregistrements ou tampons. Cela permet d'agir directement sur les données sans devoir les charger en registre.
- Les paramètres d'adresse combinent un déplacement (D1 ou D2) et un registre de base (B1 ou B2). Cela permet une grande souplesse d'adressage, typique des programmes
manipulant des structures complexes ou des tableaux. Le mécanisme d'adressage efficace est essentiel pour une exécution rapide.
- Cette instruction ne met pas à jour les registres de condition, elle effectue simplement l'opération logique. Il ne faut donc pas l'utiliser dans un contexte où une
condition doit être testée juste après. Son effet est purement destructif et orienté manipulation de mémoire.
- NC est souvent utilisée dans des boucles de traitement de texte ou de chaînes pour neutraliser certains caractères. Par exemple, on peut forcer certains bits à zéro
pour désactiver des zones ou des indicateurs. C'est une instruction simple mais très puissante en manipulation binaire de bas niveau.
Dernière mise à jour : Mardi, le 22 août 2017