Aufrufkonventionen — Änderungen 10196 → 10197

Zeile 62: Zeile 62:
  
 
== stdcall ==
 
== stdcall ==
−
stdcall ist die Standardaufrufkonvention unter 32bit-Windows Systemen. Es gleicht in den meisten Aspekten cdecl, allerdings ist die aufgerufene Funktion dafür zuständig, die Parameter vom Stack zu nehmen, z.B. indem sie für den Rücksprung die Instruktion "ret n" (Wobei n für die Größe der Parameter in Bytes auf dem Stack steht) benutzt.
+
stdcall ist die Standardaufrufkonvention unter 32-Bit-Windows-Systemen. Es gleicht in den meisten Aspekten cdecl, allerdings muss die aufgerufene Funktion den Stack am Ende mit einem „ret n“ (Wobei n für die Größe der Parameter auf dem Stack steht) ausgleichen.
−
 
+
 
== Register- oder Fastcall-Konvention ==
 
== Register- oder Fastcall-Konvention ==
−
Viele Compiler bieten zusätzlich auch noch eine Register- oder Fastcall-Konvention an, die aber meist Compilerspezifisch ist. Bei dieser werden aus Geschwindigkeitsgründen die ersten zwei oder drei Parameter in die Register EAX, EDX und ECX gespeichert. Die übrigen Parameter werden, beginnend mit dem letzen, auf den Stack gelegt. Der Rückgabewert wird in AL, AX oder EAX übergeben.
+
Viele Compiler bieten zusätzlich auch noch eine Register- oder Fastcall-Konvention an, die aber meist compilerspezifisch ist. Bei dieser werden aus Geschwindigkeitsgründen die ersten zwei oder drei Parameter in die Register EAX, EDX und ECX gespeichert. Die übrigen Parameter werden, beginnend mit dem letzen, auf den Stack gelegt. Der Rückgabewert wird in AL, AX oder EAX übergeben.
 
<c>
 
<c>
 
int a,b,c,d,e,r;
 
int a,b,c,d,e,r;