Einzelnen Beitrag anzeigen

Dax
(Gast)

n/a Beiträge
 
#2

Re: Assembler: Oberste 2 Elemente des Stacks auslesen

  Alt 25. Sep 2006, 21:03
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
  Mit Zitat antworten Zitat