Page 1 sur 1
Question de float (BIS apparement)
Publié : sam. 03/juin/2006 22:48
par SPH
Bon, ma question est toute bete :
Code : Tout sélectionner
xf.f = 14.222
x.l=0
!mov eax,[v_xf]
!mov [v_x],eax ; <== grrrr, raté !!
Debug x
Je cherche l'endroit où se trouve "14" (le nombre entier avant la virgule).
Merci de votre réponse

Publié : dim. 04/juin/2006 8:44
par tonton
faut une conversion avec une instruction x87 , mais un instruction sse fait l affaire plus simplement et rapidement.
xf.f = 14.222
x.l=0
!cvttss2si eax,[v_xf] ; (conversion du flotant en entier avec troncature des décimales)
!mov [v_x],eax ; <== pas grrrr, réussi !!
Debug x ; 14
Publié : dim. 04/juin/2006 12:13
par SPH
Tres grand merci tonton !
Comme quoi on en apprend tous les jours =) =) =)
Publié : mar. 06/juin/2006 11:38
par flaith
petite procedure ASM pour avoir la valeur absolue :
Code : Tout sélectionner
Procedure.l ABS_Asm(val.l)
! mov eax, dword [p.v_val]
! test eax, $80000000
! jz Exit
! neg eax
!Exit:
ProcedureReturn
EndProcedure