Syntaxe
Paramètres
| Nom |
Description |
| R1 |
Ce paramètre permet d'indiquer un registre impair utilisé avec le registre pair le précédant (R1-1:R1) pour former le dividende sur 64 bits. Résultats : Quotient → entreposé dans R1-1, Reste → entreposé dans R1. |
| D2(X2,B2) |
Ce paramètre permet d'indiquer l'adresse effective du diviseur sur 32 bits (valeur signée) : D2 = déplacement, X2 = registre index (optionnel), B2 = registre de base, adresse mémoire = D2 + X2 + B2. |
Description
Cette instruction permet d'effectuer la division d'une paire de registres par une opérande.
Remarques
- L'instruction D effectue une division entière signée sur 64 bits. Le dividende est réparti sur deux registres consécutifs (R1-1:R1), formant ainsi une valeur de
grande précision. Elle est utile pour diviser de grands nombres ou effectuer des calculs de précision élevée.
- Le quotient est placé dans le registre pair (R1-1) et le reste dans le registre impair (R1). Cette séparation permet une gestion immédiate des deux résultats, sans
opération supplémentaire. C'est une approche efficace pour les algorithmes nécessitant à la fois le quotient et le reste.
- Le diviseur est un entier signé sur 32 bits, lu en mémoire à une adresse calculée par D2 + (X2) + B2. Ce mode d'adressage flexible permet de travailler avec des
tableaux ou des structures complexes. Le registre X2 est facultatif, ce qui permet une syntaxe allégée si l'indexation n'est pas nécessaire.
- R1 doit toujours être impair, car l'instruction utilise la paire R1-1:R1. Une erreur de numéro de registre invaliderait l'opération et provoquerait une exception.
Cela nécessite une bonne gestion des registres lors de la planification des calculs.
- Une erreur de division par zéro entraîne une interruption système, interrompant le programme. Il est donc impératif de vérifier la validité du diviseur en amont
pour éviter un plantage. C'est une précaution essentielle dans les routines critiques.
- L'instruction n'effectue pas de test de dépassement de capacité (overflow) pour le quotient. Un résultat trop grand pour le registre peut engendrer un résultat
incorrect sans alerte immédiate. Des tests complémentaires sont souvent nécessaires dans les calculs sensibles.
- La division est un processus relativement coûteux en cycles machine par rapport aux autres opérations. Elle doit donc être utilisée judicieusement, en optimisant
les boucles si elle est fréquente. Cela peut impacter la performance globale du programme.
- Cette instruction est souvent utilisée dans des routines de calculs financiers, statistiques ou d'alignement mémoire. Elle fournit un mécanisme bas niveau mais précis
pour réaliser des divisions complexes. Elle s'inscrit dans la logique des instructions arithmétiques puissantes du System/370.
Dernière mise à jour : Mardi, le 22 août 2017