so ich hab jetzt mal im fmod forum gestöbert und das hier gefunden, was mir auch weitergeholfen hat.
verstehen kann ich es trotzdem nicht.
FMOD Forum: Undoing the Set8087CW Setting
was ist denn zwischen der delphi funktion und der im forum geposteten anders (versteh leider nicht so viel assembler).
Delphi TRUNC:
Delphi-Quellcode:
function Trunc(X: Extended): Int64;
const cwChop : Word = $1F32;
procedure _TRUNC;
asm
{ -> FST(0) Extended argument }
{ <- EDX:EAX Result }
SUB ESP,12
FSTCW [ESP]
FWAIT
FLDCW cwChop
FISTP qword ptr [ESP+4]
FWAIT
FLDCW [ESP]
POP ECX
POP EAX
POP EDX
end;
gepostete TRUNC
Delphi-Quellcode:
const
// FPU status flags (high order byte)
cwChop : Word = $1F3F;
function Trunc64(v : Extended) : Int64;
register;
asm
SUB ESP,12
FSTCW [ESP]
FLDCW cwChop
FLD v
FISTP qword ptr [ESP+4]
FLDCW [ESP]
POP ECX
POP EAX
POP EDX
end;