Pour afficher des petites valeurs tu dois d'abord combien de décimales afficher par exemple pour 3 decimales tu fais:
mille dd 1000.0
...
fmul dword ptr [mille]
frndint ; Pour arrondir
Ensuite stocker sous forme d'entier par:
val dd 0
...
fistp dword ptr [val]
Ensuite tu n'as plus qu'à convertir un entier en ascii en mettant la virgule décimale au bon endroit.
Pour les plus grands nombre il faudra d'abord obtenir l'exposant en faisant:
fxtract
st(1)=exposant biaisé
st=mantisse
Tu pourras ensuite convertir l'exposant et la mantisse.
fscale est l'équivalant de l'instruction sar si st(1)<0 et équivalent à l'instruction shl ou sal si st(1)>0.
fscale effectue:
st=st * 2^st(1)
mais attention st(1) garde sa valeur il faut effectuer un fpop de la manière suivante:
fxch st(1)
ffree st
fincstp
Core Breaker :)