Einzelnen Beitrag anzeigen

Benutzerbild von Chemiker
Chemiker

Registriert seit: 14. Aug 2005
1.859 Beiträge
 
Delphi 11 Alexandria
 
#1

[ASM] Lange Strings als Function - Wert zurückgeben

  Alt 18. Jan 2008, 20:24
Hallo,

in der Dephi – Hilfe steht das man lange Strings im EAX – Register wieder zurückgibt.

Zitat:
Funktionsergebnisse
Assembler-Funktionen liefern ihre Ergebnisse folgendermaßen zurück:
• Ordinale Werte werden in AL (8-Bit-Werte), AX (16-Bit-Werte) oder EAX (32-Bit- Werte) zurückgeliefert.
• Reelle Werte werden in ST(0) über den Register-Stack des Coprozessors zurückgegeben. (Currency-Werte werden mit dem Faktor 10000 skaliert.)
• Zeiger einschließlich langer Strings werden in EAX zurückgeliefert.
• Kurze Strings und Varianten werden an die temporären Adresse zurückgegeben, auf die @Result zeigt.
z.B.:
Delphi-Quellcode:
function strRueckgabe (s: PChar) : String;
ASM
… Mach was mit s in ASM
Functionsergebnis in EAX
END;
Mir ist jetzt nur nicht klar, wie ich den langen String in EAX bekomme (Also der Pointer), muss ich dafür in der Function selber den Speicherplatz reservieren, oder hat ein anderer Register die Anfangsadresse?

Bis bald Chemiker
wer gesund ist hat 1000 wünsche wer krank ist nur einen.
  Mit Zitat antworten Zitat