Hallo gammatester,
danke für die ausführliche Erklärung! Ich hatte verdrengt, dass mul das Ergebnis in edx:eax speichert. Und somit immer mit den falschen 4byte gerechnet.
Delphi-Quellcode:
function MyRandom2(const ARange: Cardinal): Cardinal;
begin
result := Cardinal(RandSeed * $08088405 + 1) * Int64(ARange) shr 32;
RandSeed := result;
end;
Gruß,
Win32