Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.214 Beiträge
 
Delphi 12 Athens
 
#8

Re: Result einer Funktion in ASM auswerten

  Alt 26. Jun 2006, 11:28
Zitat von Win32.API:
[ebp-$04] lagert imho eine Variable aus ...
nein, es gibt die Position an, wo eine Stringvariable steht

Delphi-Quellcode:
var S: String;
asm
  lea eax, &S
  call foo
  mov eax, &S
  call showmessage
end;
oder selbergemacht.

Delphi-Quellcode:
var S: String;
asm
  mov [ebp-$04], 0 // string initialisieren
  lea eax, [ebp-$04]
  call foo
  mov eax, [ebp-$04]
  call showmessage
  mov eax, [ebp-$04]
  call StringFreigeben
end;
"string initialisieren": aber aufpassen, daß nichts anderes an dieser Position liegt, ansonsten halt ein anderes Fleckchen suchen

"StringFreigeben": ich weiß grad nicht wie die Funktion heißt .... schau einfach mal was bei "S := ''" gemacht wird ... die Funktion ist irgendwo in der System.pas definiert.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat