Assembleur 80x86 | FDIV |
---|---|
INTEL MPU 8087+ | Float Division |
Syntaxe
FDIV source, cible |
Description
Cette instruction offre la possibilité d'effectuer des divisions de nombre réel de valeur positive source par cible et enregistrer le résultat dans cible. Si cible n'est pas spécifié, le registre mathématique ST(0) est inutilisé. Si source et cible ne sont pas défini, le couple de registre mathématique ST(1) et ST(0) sont utilisés.
Remarques
- Bug FDIV Pentium : Le 19 octobre 1994, le professeur de mathématique Thomas Nicely de l'université de Lynchburg découvre que cette instruction contient un bogue dans le résultat de son calcul avec la constante de Brun. Le problème de division de nombre réel (en virgule flottante) du microprocesseur Pentium de l'entreprise Intel était dû à une erreur de conception de circuit subtile mais spécifique; la faille a été facilement corrigée grâce aux modifications apportées aux masques lors de la révision suivant de production régulière de la puce Pentium, en 1994.
- Le fonctionnement de cette instruction est identique dans les modes non 64 bits et 64 bits.
- Si une exception de division par zéro non masquée (#Z) est générée, aucun résultat n'est entreposé. si l'exception est masquée, un ∞ du signe approprié est entreposé dans l'opérande de destination.
Algorithme
MODULE FDIV(source, cible) source ← source ÷ cible |
Mnémonique
Instruction | Opcode | Description |
---|---|---|
FDIV mem32 | D8h /6 | Cette instruction permet d'effectuer des divisions de nombre réel de valeur positive source par cible et enregistrer le résultat dans cible. |
FDIV mem64 | DCh /6 | Cette instruction permet d'effectuer des divisions de nombre réel de valeur positive source par cible et enregistrer le résultat dans cible. |
FDIV fpureg | D8h (F0h+r) | Cette instruction permet d'effectuer des divisions de nombre réel de valeur positive source par cible et enregistrer le résultat dans cible. |
FDIV ST0,fpureg | D8h (F0h+r) | Cette instruction permet d'effectuer des divisions de nombre réel de valeur positive source par cible et enregistrer le résultat dans cible. |
FDIV TO fpureg | DCh (F8h+r) | Cette instruction permet d'effectuer des divisions de nombre réel de valeur positive source par cible et enregistrer le résultat dans cible. |
FDIV fpureg,ST0 | DCh (F8h+r) | Cette instruction permet d'effectuer des divisions de nombre réel de valeur positive source par cible et enregistrer le résultat dans cible. |
Exemples
L'exemple suivant permet d'effectuer une division de nombre réel situé dans le registre ST(1) :
- FDIV ST(1)
L'exemple suivant permet de charger un nombre réel, de le diviser par un symbole et de le dépiler :
Voir également
Langage de programmation - Assembleur 80x86 - MPU : Coprocesseur mathématique
Références
Le livre d'Or PC, Martin Althaus, 1992, ISBN: 2-7361-0934-1, page 843
Intel® 64 and IA-32 Architectures Software Developer’s Manual Volume 2A: Instruction Set Reference, A-M, Edition Intel, Mars 2010, Publication No. 253666-034US, page 422 à 424.