Warum muß es denn unbedingt Assembler sein?
Delphi-Quellcode:
function TPRNG.random: Double;
begin
Result := genrand_MT19937/4294967296.0;
end;
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:
Result := longword(genrand_MT19937)/4294967296.0