nun versuch ichs mal damit:
Delphi-Quellcode:
procedure _RandInt;
asm
{ ->EAX Range }
{ <-EAX Result }
PUSH EBX
{$IFDEF PIC}
PUSH EAX
CALL GetGOT
MOV EBX,EAX
POP EAX
MOV ECX,[EBX].OFFSET RandSeed
IMUL EDX,[ECX],08088405H
INC EDX
MOV [ECX],EDX
{$ELSE}
XOR EBX, EBX
IMUL EDX,[EBX].RandSeed,08088405H
INC EDX
MOV [EBX].RandSeed,EDX
{$ENDIF}
MUL EDX
MOV EAX,EDX
POP EBX
end;
1. Frage: ich weiss nun, dass Push den wert im stack abspeichert.
überschreibt push eax nun push ebx oder gibts für beide register nen einzelnen stack?
2. Frage: "call getgot" ich weiss was call ist, aber was ist getgot?
3. Frage: [EBX].Randseed: was ist das? hat der register Ebx noch unterregister oder wie?