![]() |
64bit asm
Hallo Leute,
wie kann man diesen Win32 ASM-Code in WIn64 übersetzten?
Delphi-Quellcode:
function TPRNG.random: Double;
const Minus32: double = -32.0; asm CALL genrand_MT19937 PUSH 0 PUSH EAX FLD Minus32 FILD qword ptr [ESP] ADD ESP,8 FSCALE FSTP ST(1) end; |
AW: 64bit asm
Anpassen der Register sollte reichen
EAX->RAX ESP->RSP |
AW: 64bit asm
Zitat:
|
AW: 64bit asm
Warum muß es denn unbedingt Assembler sein?
Delphi-Quellcode:
macht doch wohl genau das, was Du brauchst. Wenn's dann noch mit inline deklariert wird, ist es eventuell sogar schneller als eine asm-Funktion. Falls genrand_MT19937 ein longint liefert, mußt Du halt noch ein DWORD/cardinal/longword-Typecast einstreuen:
function TPRNG.random: Double;
begin Result := genrand_MT19937/4294967296.0; end;
Delphi-Quellcode:
Result := longword(genrand_MT19937)/4294967296.0
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:16 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz