JB
Je suis sûr que c'est un truc de boeuff ; bon , comme moi quoi ."oui mais , sans l'anneau dans le nez !."
J'ai fait une dll en asm , avec envoi d'un paramètre en double
L'appelant de la dll, c'est mon langage évolué .
Pour tester ma compétence en asm et fpu "c'est un euphémisme de parler de compétence" j'ai pris le cos.
Et puis j'ai fait "par déduction, je me suis dit : la fpu calcule en radian ?."
donc le double en radian "pour faire simple ! et pour tester ."

Le langage évolué -> Declare Function cosr lib "cos" alias "cosx" ( radian as double) as long
l'appelant -> result = cosr (2.0)
normalement -> result = - 0.416146836547142

l'asm ; -> là , le vrai sujet
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
.data
 stok real4 0.0
 
cosx PROC    rad:real8  ; ->le double -> rad = 2.0
;LOCAL bcd      :tbyte
 
fninit
fld rad -> là , la fpu s'adapte au real8  ! ? s'adapte ?....."faut voire !"
fcos
fwait ; -> bofff
 ;sahf -> cpu
fstp  stok   ; là , je passe de double en single "pas sûr hein ?"
mov  eax,stok   ; là je balance du real4
ret 
cosx ENDP
BEN ? ; result est égal à -1.09333274E9 "c'est pas un prob de conversion ? .. le tbyte ???.."
le truc de boeuff c'est quoi ?
svp , la solus ! .
merci
papi