Einzelnen Beitrag anzeigen

Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.453 Beiträge
 
Delphi 12 Athens
 
#6

AW: ASM-Funktion Verständnisfrage und anpassen (asm > Delphicode? bzw asm x86 > x64?)

  Alt 25. Nov 2019, 19:33
Ich muss die Beschreibung des MOV Befehls korrigieren (ist schon 'ne Weile her mit ASM): Die Richtung ist anders herum
Delphi-Quellcode:
asm
 PUSH EAX {Parameter 1 = Range auf Stack sichern}
 CALL genrand_MT19937 {Random Longint aufrufen, Ergebnis steht in EAX (keine Parameter)}
 POP EDX {Range vom Stack in EDX holen}
 MUL EDX {EAX mit EDX multiplizieren, Ergebnis steht in EDX,EAX }
 MOV EAX,EDX {Die höheren 32-Bits in EDX als result in EAX zurückgeben }
end;
Der Delphi-Code sähe dann so aus:
Delphi-Quellcode:
  
Result := Int64Rec(Int64(Range) * genrand_MT19937).Hi;
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat