| Assembleur 370 |
ZAP |
| Zero Add Packed |
Syntaxe
Paramètres
| Nom |
Description |
| D1(L1,B1) |
Ce paramètre permet d'indiquer une destination. Zone mémoire destination (où sera stocké le résultat). D1 : Déplacement (offset dans le segment). L1 : Longueur en octets de la zone destination (2 à 16). B1 : Registre de base. Cette zone sera remplie avec la valeur de la source, format packed. |
| D2(L2,B2) |
Ce paramètre permet d'indiquer une source. Zone mémoire source contenant un nombre en format packed decimal. D2 : Déplacement. L2 : Longueur en octets de la zone source. B2 : Registre de base. La valeur de cette zone sera copiée vers la destination. |
Description
Cette instruction permet de réinitialiser à 0 un bloc de données et d'ajouter des données compactés à celui-ci.
Remarques
- L'instruction ZAP effectue une copie de données numériques au format packed decimal, de la source vers la destination. Avant la copie, la zone de destination est
remise à zéro. Cela permet d'assurer que le résultat est exact, sans résidu de données antérieures.
- Le nom "Zero Add Packed" est un peu trompeur : il ne s'agit pas réellement d'une addition, mais d'une copie propre. La "mise à zéro" fait référence à la neutralisation
préalable de la destination. C'est souvent utilisé pour initialiser une variable packed avec une valeur d'entrée.
- Les zones source et destination doivent être en format packed decimal, un format utilisé pour le calcul décimal précis. Chaque octet contient deux chiffres décimaux,
sauf le dernier qui contient aussi le signe. Le respect du format est crucial pour éviter des erreurs de conversion ou d'interprétation.
- La longueur de la destination (L1) doit être supérieure ou égale à celle de la source (L2) pour éviter un dépassement. Si L1 < L2, des chiffres seront tronqués
lors de la copie. Cela peut provoquer des résultats erronés, surtout pour des montants financiers.
- ZAP est très utile dans les algorithmes arithmétiques en assembleur, notamment pour préparer un accumulateur. En l'utilisant avant une addition ou une soustraction
(AP, SP), on garantit une base propre. C'est donc une brique de base pour des opérations mathématiques sur données packed.
- L'instruction ne modifie aucun registre, elle agit uniquement sur la mémoire. Cela permet de manipuler directement des variables sans occuper inutilement les
registres généraux. Cela renforce la lisibilité et la clarté des routines de calcul.
- L'opération ZAP est sûre pour les formats décimaux BCD, car elle respecte la structure packed. Elle ne nécessite pas de conversion intermédiaire, ce qui évite les
pertes de précision. C'est un atout pour les applications comptables ou bancaires.
- L'instruction peut aussi servir à initialiser une variable à zéro, en copiant une zone source contenant "0". Elle combine donc deux opérations fréquentes : remise
à zéro et affectation. Cela en fait une instruction efficace et polyvalente dans la gestion des données packed.
Dernière mise à jour : Mardi, le 22 août 2017