Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Frage (sorry da ichs nicht weiss gehts nich aussagekräftiger (https://www.delphipraxis.net/9944-frage-sorry-da-ichs-nicht-weiss-gehts-nich-aussagekraeftiger.html)

Pseudemys Nelsoni 8. Okt 2003 12:34


Frage (sorry da ichs nicht weiss gehts nich aussagekräftiger
 
http://www.angelfire.com/bug/delphi/frage.JPG

siehe was revlt auf dem bild schreibt...also wie es bei ASM wäre und bei C...wie ist es bei delphi?

Luckie 8. Okt 2003 12:41

Re: Frage (sorry da ichs nicht weiss gehts nich aussagekräft
 
Hä? :wiejetzt: :gruebel:

In dem Chat gibt es keinen revlt. Redest du eventeull davon in welcher Reihenfolge die Parameter auf dem Stack abgelegt werden?

Pseudemys Nelsoni 8. Okt 2003 12:44

Re: Frage (sorry da ichs nicht weiss gehts nich aussagekräft
 
jo genau luckie, also 1,2,3 oder 3,2,1 ?

ich meine random

Chewie 8. Okt 2003 13:52

Re: Frage (sorry da ichs nicht weiss gehts nich aussagekräft
 
Du legst immer was auf den Stack (Stapel) drauf, also liegt die 3 unten und die 1 oben. Klar, denn die 1 wird ja zuerst abgeholt.

Pseudemys Nelsoni 8. Okt 2003 19:16

Re: Frage (sorry da ichs nicht weiss gehts nich aussagekräft
 
aber er sagt ja "the ASM would output to: Push3, Push2, Push1" also umgekehrt

weiter oben fragte er "is it from left to right, or right to left?"

negaH 8. Okt 2003 19:24

Re: Frage (sorry da ichs nicht weiss gehts nich aussagekräft
 
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

Pseudemys Nelsoni 8. Okt 2003 19:44

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

Studiert die Hilfe
nur ich brauch sie studieren, er hat das game gehackt und kennt sich mit dem ganzen ziemlich gut aus, er fragte nur wie es in delphi ist(er arbeitet mit C++) daher fragte ich hier ;)

ich hätte auch nicht gewusst wonash ich in der hilfe gucken sollte.

Danke für die ausfürhliche beschreibung Hagen :zwinker:


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:41 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz