Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Pretypovanie real na integer mimo trunc - Delphi

Áno presné to nebude nikdy...

Tu Ti dávam ako je implementovaná funkcia priamo z jednotky System (Delphi)

{$IF     defined(CPUX64)}
function _Trunc(Val: Extended): Int64;
asm
        .NOFRAME
        CVTTSD2SI RAX, XMM0
end;
{$ELSEIF defined(CPUX86)}
procedure _TRUNC;
asm
        { ->    FST(0)  Extended argument       }
        { <-    EDX:EAX Result                  }

        SUB     ESP,12
{$IFDEF IOS} // iOS/Simulator
        CALL    FClearExcept
{$ENDIF IOS}
        FNSTCW  [ESP].Word          // save
        FNSTCW  [ESP+2].Word        // scratch
        FWAIT
        OR      [ESP+2].Word, $0F00  // trunc toward zero, full precision
        FLDCW   [ESP+2].Word
        FISTP   qword ptr [ESP+4]
        FWAIT
        FLDCW   [ESP].Word
{$IFDEF IOS} // iOS/Simulator
        CALL    FCheckExcept
{$ENDIF IOS}
        POP     ECX
        POP     EAX
        POP     EDX
end;

Reakce na odpověď

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny