Statische Ketten: Beispiel

int f ( int x ) 
{
 int g ( int y ) 
 {
  int h ( int z ) 
  {
   return 
     x + y + z; 
  } 
  return 
    h (h (h (0))); 
 }    
 return g (g (0)); 
}
statische Kette benutzen
h.37:
pushl %ebp
movl %esp,%ebp
subl $24,%esp
movl %ecx,-4(%ebp)
movl -4(%ecx),%eax
movl -4(%eax),%edx
movl -8(%ecx),%eax
movl (%eax),%eax
addl (%edx),%eax
addl 8(%ebp),%eax
leave
ret
Kette verlängern
g.33:
pushl %ebp
movl %esp,%ebp
subl $24,%esp
movl %ecx,-4(%ebp)
leal 8(%ebp),%eax
movl %eax,-8(%ebp)
addl $-12,%esp
addl $-12,%esp
addl $-12,%esp
pushl $0
movl %ebp,%ecx
call h.37



Johannes Waldmann 2005-01-28