Nun, erstmal der Code:
Delphi-Quellcode:
procedure Test(
var L, R: Integer);
asm
mov ecx, [esp]
mov [eax], ecx
mov ecx, [esp+4]
mov [edx], ecx
end;
Erklärung: durch das
var wird der Compiler angewiesen, Pointer auf die Variablen zu übergeben. Parameterübergabereihenfolge ist EAX, EDX, ECX, Stack; von links nach rechts. Hier sind nur zwei Parameter, also sind die in EAX und EDX.
Da du immer nur einen Pointer dereferenzieren (die []) kannst, musst du einen Umweg über ein Hilfregister gehen, hier eben ECX.
PS: kann auch sein, das es [esp-4] sein muss, hab schon so ewig nix mehr mit Assembler gemacht