Diskussion:Aufrufkonvention
ich kann kein assembler, aber die logik sagt mir, dass beim ersten assembler codestück ein push x am anfang fehlt. --84.154.23.20 20:24, 29. Mai 2007 (CEST)
- In x (wobei x für eine Adresse im Speicher steht) soll der Rückgabewert gespeichert werden, dafür muss es nicht auf den Stack gepusht werden. Auf den Stack müssen lediglich die Argumente der Funktion. --Odioz 21:16, 29. Mai 2007 (CEST)
AMD64 Architektur und Register Aufrufkonvention
BearbeitenIm Artikel AMD64 steht folgendes: Gleichzeitig wurde mit AMD64 eine neue Aufrufkonvention für Programmprozeduren (ABI) eingeführt, bei dem Parameter nicht mehr regelmäßig über den Programmstack laufen wie in den klassischen x86-Betriebsmodi, sondern in der Regel in Registern übergeben werden. Dieses registerorientierte ABI ist bei anderen Prozessorfamilien (wie PowerPC) schon länger üblich und kann zu einer Beschleunigung rechenintensiver Programme führen. Dies sollte man eventuell in den Artikel noch einbauen, da sich das bei der 64 Bit Architektur etwas geändert hat und dort die Register R1-R15 verwendet werden. --84.56.184.84 20:10, 24. Nov. 2007 (CET)
- Ich habe bei fastcall einen entsprechenden Satz hinzugefügt. --85.70.197.210 10:27, 18. Jun. 2010 (CEST)
Andere CPU-Architekturen ??
BearbeitenAndere CPU-Architekturen (ARM,MIPS,Itanium,PowerPC,....) sind in dem Artikel nicht mal ansatzweise erwähnt. Es werden nur die 32Bit-x86 behandelt. Ein Blick auf andere CPU-Architekturen kann bestimmt nicht schaden, wenigstens als externe Links. Grüße Erik
Binärschnittstelle und Aufrufkonvention
BearbeitenSind Aufrufkonventionen ein Aspekt einer Binärschnittstelle? --Abdull 21:29, 13. Jan. 2010 (CET)
- Um von dort jetzt hier weiter zumachen: Nach meiner (einigermaßen ungenauen) Erinnerung sind die verschiedenen Alpha-Prozessoren binärkompatibel: Ein wesentliches Merkmal ist, dass die Parallelisierung innerhalb der CPU stattfindet, die cdecl-Aufrufkonventionen also über die verschiedenen Prozessor-Generationen gleich bleiben. Ähnliches gilt vermutlich auch für Sun SPARC. Es wäre wohl hilfreich, im Artikel hier auch RISC-Maschinen abzuhandeln. --grixlkraxl 22:42, 13. Jan. 2010 (CET)
void als Rückgabeparameter
BearbeitenBeim Beispiel für _cdecl ist der Rückgabewert void während für die Parameter params steht. Das erweckt doch den Eindruck, als ob _cdecl-Funktionen alle keinen Rückgabewert haben dürften. Wäre es da nicht konsistenter wenn der Rückgabewert unverbindlich als solche benannt wird z.B. rwert oder so? -- 88.78.30.229 23:56, 14. Mär. 2010 (CET)
- ich habe die Beispiele mal so angepasst, dass sie den Prototypen der Funktion des allerersten Beispiels verwenden --IUniversEi (Diskussion) 13:37, 12. Okt. 2012 (CEST)
Unklarheit bei stdcall
BearbeitenSatz: "Funktionsparameter werden von rechts nach links übergeben".
Dieser Satz ist mir nicht ganz klar. Ist damit gemeint, dass die Funktions-Parameter von rechts beginnend nach links hin nacheinander auf den Stack (in den entsprechenden Stackframe) gelegt werden? (nicht signierter Beitrag von 87.77.81.240 (Diskussion) 12:46, 16. Dez. 2010 (CET))
- Ja.
extern int func(int, char);
- führt z.b. dazu, dass bei dieser Aufrufkonvention zuerst das int, dann das char auf den Stack gelegt wird. Und der Stack wächst von oben nach unten. D.h. ganz unten wäre der letzte in den Stack gelegte Wert. --IT-Compiler (Diskussion) 04:00, 13. Jun. 2022 (CEST)
- Muss doch genau anders herum sein. "Von rechts nach links": erst char, dann int.
- --178.2.21.31 17:36, 11. Dez. 2022 (CET)
Wortwahl
BearbeitenIn der Übersichtstabelle steht als Verb "aufräumen", im restlichen Text steht "abbauen". "Abbauen" klingt irgendwie plastisch oder so, "aufräumen" hört sich einfach besser an; ich würde das ändern, wenn dem nichts entgegensteht... --.love.is.war. 02:13, 20. Feb. 2012 (CET)
- nur zu, sei mutig. Konsistente Wortwahl verbessert die Verständlichkeit. gruesse Shaddim 10:29, 21. Feb. 2012 (CET)