Нужна помощь для преобразования x86 ASM в x64 - PullRequest
1 голос
/ 03 апреля 2020

У меня есть библиотека, которая использует ассемблерный код для некоторых функций, и я хотел бы скомпилировать ее на x64, конечно, с ошибками. Кто-нибудь может быть так любезен, чтобы исправить это (и, возможно, даже объяснить мне, ПОЧЕМУ эти функции написаны на ASM)?

function Trunc(const x : Single) : Integer; register;
const cwChop : Word = $1F3F;
asm
      SUB     ESP,8
      FSTCW   [ESP]
      FLDCW   cwChop
      FLD     x
      FISTP   dword ptr [ESP+4]
      FLDCW   [ESP]
      POP     ECX
      POP     EAX
end;

function Frac(const x : Single) : Single; register;
begin
   Result := x - Trunc(x);
end;

function Round(const x : Single) : Integer; register;
asm
      SUB     ESP,4
      FLD     x
      FISTP   dword ptr [ESP]
      POP     EAX
end;

самое скромное спасибо!

...