| Assembleur 370 |
CVD |
| Convert to Decimal |
Syntaxe
Paramètres
| Nom |
Description |
| R1 |
Ce paramètre permet d'indiquer un registre impair, utilisé avec R1-1 comme paire de registres pour former un entier signé 64 bits (R1-1:R1). Exemple : si tu écris CVD R3, ... → la valeur convertie est l'entier contenu dans R2:R3 |
| D2(X2,B2) |
Ce paramètre permet d'indiquer l'adresse de destination où sera entreposée la valeur packed decimal résultante : D2 = déplacement, X2 = registre index (facultatif), B2 = registre de base, Adresse effective = D2 + (X2) + B2. |
Description
Cette instruction permet d'effectuer la conversion d'un nombre binaire, contenu dans une opérande, à un décimal retourner dans un registre.
Remarques
- L'instruction CVD permet de convertir un entier binaire signé 64 bits en format décimal paqueté. Elle est l'inverse logique de l'instruction CVB, souvent
utilisée en tandem avec celle-ci. Cela facilite les échanges entre traitements binaires et zones décimales d'entreposage.
- Le registre spécifié R1 doit être impair, car la valeur à convertir est contenue dans la paire R1-1:R1. Par exemple, CVD R3 implique que le nombre est réparti entre
les registres R2 et R3. Une erreur dans la parité du registre peut provoquer un résultat incorrect.
- Le résultat de la conversion est entreposé en mémoire à l'adresse effective D2(X2,B2). Ce mécanisme permet un stockage direct dans une zone de données formatée, souvent
utilisée pour la sortie ou le traitement ultérieur. C'est particulièrement utile dans les programmes manipulant des données monétaires.
- Le format packed decimal (BCD) permet de stocker deux chiffres par octet, ce qui économise de l'espace. CVD encode ainsi les valeurs de manière compacte tout en restant
lisibles pour des opérations décimales. Ce format est courant dans les traitements comptables ou bancaires.
- L'instruction CVD est souvent utilisée avant d'écrire une valeur en mémoire ou dans un fichier séquentiel. Elle assure que l'entier est transformé dans un format
conforme aux attentes d'autres systèmes. Cela garantit la compatibilité avec des applications COBOL ou
PL/1.
- L'utilisation d'un registre index facultatif (X2) permet une grande flexibilité dans le calcul de l'adresse mémoire. Cela simplifie la gestion de structures de données
complexes ou de tableaux. L'adresse résultante est obtenue par D2 + (X2) + B2.
- CVD ne génère pas d'interruption système si la mémoire cible est mal alignée, mais le résultat peut être incorrect. Il faut donc s'assurer que la zone mémoire cible
est bien dimensionnée et alignée pour contenir un format packed. Cela évite des anomalies de traitement discrètes mais critiques.
- L'instruction est essentielle pour le passage de données internes (binaires) à des formats d'échange ou d'affichage. Elle joue un rôle crucial dans la conversion des
résultats arithmétiques avant leur enregistrement. C'est une brique incontournable des traitements mixtes binaire/décimal dans les applications IBM 370.
Dernière mise à jour : Mardi, le 22 août 2017