Einzelnen Beitrag anzeigen

Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#6

Re: Frage (sorry da ichs nicht weiss gehts nich aussagekräft

  Alt 8. Okt 2003, 19:24
Studiert die Hilfe, und schlagt die Aufrufkonventionen nach, stdcall, cdecl, pascal und assembler.
Delphi nutzt per default register, d.h. EAX=1, EDX=2, ECX=3, Push 4, push 5 ...... Die sie wesentlich effizienter als cdecl,stdcall oder pascal.

Im Chat wurden die reihenfolgen falsch dargestellt, C = cdecl würde 3,2,1 pushen und Pascal 1,2,3 sprich die natürliche Order. cdecl hat den Vorteil das man die Parameter vorne erweitern kann.

Z.b. A(1,2,3) -> push 3, push 2, push 1, will man nun B(0,1,2,3) aufrufen innerhalb von A() so reicht ein push 0 und jmp B() aus. In stdcall=pascal müsste mann alle parameter auf dem Stack verschieben um 0 einfügen zu können.

Gruß Hagen
  Mit Zitat antworten Zitat