| Assembleur 370 |
MVO |
| Move with Offset |
Syntaxe
Paramètres
| Nom |
Description |
| D1(L1,B1) |
Ce paramètre permet d'indiquer la destination : L'adresse mémoire où les données seront copiées. D1 : Déplacement (offset) à ajouter à l'adresse contenue dans le registre B1 (registre de base de la destination), L1 : Longueur des données à copier (en octets), B1 : Registre de base contenant l'adresse de la destination. |
| D2(L2,B2) |
Ce paramètre permet d'indiquer la source : L'adresse mémoire d'où les données doivent être copiées. D2 : Déplacement (offset) à ajouter à l'adresse contenue dans le registre B2 (registre de base de la source). L2 : Longueur des données à copier (en octets) depuis l'adresse source, B2 : Registre de base contenant l'adresse de la source. |
Description
Cette instruction permet de copier les 4 bits du haut d'un octet d'un bloc de données dans les 4 bits du bas d'un autre bloc de données.
Remarques
- L'instruction MVO copie uniquement les 4 bits de poids fort (high nibble) de la source dans les 4 bits de poids faible (low nibble) de la destination. Les autres 4 bits
de chaque octet ne sont pas modifiés, ce qui permet un traitement partiel des données. C'est une opération fine et ciblée sur les nibbles.
- Elle est utile pour manipuler des données numériques codées en zone, comme celles utilisées dans les applications de comptabilité. Par exemple, elle permet d'écrire un
chiffre sur la moitié basse d'un octet tout en gardant le préfixe intact. Cela est fréquent dans la gestion de formats imprimables.
- Le paramètre D1(L1,B1) spécifie où les nibbles seront écrits, en définissant l'adresse de destination et la longueur. Cette longueur correspond au nombre d'octets
affectés, pas seulement de nibbles. Le calcul de l'adresse combine le déplacement D1 et le registre de base B1.
- D2(L2,B2) désigne l'adresse source et le nombre d'octets à lire. Cependant, seuls les high nibbles (bits 0 à 3) de chaque octet source sont pris en compte. Cela permet
de transférer uniquement la partie significative d'un caractère.
- MVO est souvent employée pour fusionner des chiffres dans des formats de sortie spécifiques, par exemple pour préparer des champs imprimables en sortie d'état. Elle
s'intègre bien dans des routines de conversion ou de mise en forme. Elle est aussi complémentaire de MVN, MVP, ou MVC.
- L'opération se fait octet par octet, sur une longueur déterminée par L1 et L2. Si L1 ≠ L2, le comportement peut être imprévisible ou provoquer des erreurs. Il est
important de bien harmoniser ces longueurs.
- Cette instruction ne modifie aucun registre général, elle agit exclusivement en mémoire. Cela la rend pratique dans des sections de code critiques ou partagées.
Son usage n'affecte pas les autres calculs en cours.
- Une mauvaise utilisation de MVO peut entraîner des données incohérentes, en laissant des portions d'octets avec des valeurs indésirables. Il faut veiller à initialiser
les destinations correctement, surtout leurs high nibbles. Une bonne gestion des formats d'entrée et sortie est essentielle.
Dernière mise à jour : Mardi, le 22 août 2017