Einzelnen Beitrag anzeigen

OLLI_T

Registriert seit: 13. Okt 2003
Ort: Nähe Wetzlar / Hessen
143 Beiträge
 
Delphi 5 Enterprise
 
#16

Re: Delphi Inline Assembler Zugriff auf Privates Objekt

  Alt 18. Nov 2003, 09:53
Hallo Hagen!

Vielen Dank für Deine Ausführungen. Es ist immer wieder ein Genuss, Deine Beträge zu studieren.

Du hast folgendes Beispiel angeführt, wobei ich ehrlich gesagt noch nicht ganz verstehe, was der Code bezwecken soll.
Delphi-Quellcode:
type
  TMyObject = class
    FProc: procedure(const Data; DataSize: Integer) of object;
  end;

procedure TMyObject.Calc(const Data; DataSize: Integer); assembler;
asm
    JMP DWord Ptr [EAX].FProc.TMethod.Code // in D7

    JMP TMethod([EAX].FProc).Code // bis D7 möglich
end;
Wieso verwendest Du den Operanten JMP und nicht CALL? Es geht doch darum, eine variable Methode zur Berechnung zu implementieren; ein für meine Begriffe sehr elegantes Programmierkonstrukt. Aber wie es geht nach dem Sprung zur Adresse Code und der Abarbeitung der Fkt weiter? Oder wird hier einfach der Stackframe der Methode Calc genutzt? Bitte um Aufklärung!

Viele Grüsse

OLLI
No Pain No Gain!
  Mit Zitat antworten Zitat