Einzelnen Beitrag anzeigen

Benutzerbild von JasonDX
JasonDX
(CodeLib-Manager)

Registriert seit: 5. Aug 2004
Ort: München
1.062 Beiträge
 
#3

Re: Objekte in Assembler ansprechen -- Aufbau im Speicher

  Alt 4. Nov 2006, 11:04
Siehe Calling Conventions
In Delphi sind Klassen nur Adressen, womit dir in EAX self uebergeben wird. AFAIR kannst du darauf ueber
[EAX].MyTest.Value zugreifen, wenn ich jetzt nicht ganz danebenliege. Der zweite Parameter wird dir damit auch nur als Zeiger uebergeben, auf den aequivalent zugegriffen wird.
Da (iirc) aber nur eine Dereferenzierung pro Befehl moeglich ist, musst du vorher den Wert zwischenspeichern. Fuehrt zu:
Delphi-Quellcode:
procedure MyTest.test(x: MyTest);
asm
  mov ECX, [EDX].MyTest.Value
  mov [EAX].MyTest.Value, ECX
end;
Allerdings ungetestet...

greetz
Mike
Mike
Passion is no replacement for reason
  Mit Zitat antworten Zitat