#include <stdio.h> void main() { int a = 2; void e(int n); e(a); } void e(int n) { if (n > 0) { e(--n); printf("*%d*/n* ", n); e(n); printf("%d good!/n",n); } } | | main | | |_______________________| | | | pushl a = 2 | |_______________________| | | call e | pushl IP | |_______________________| | | | pushl %ebp | |_______________________| | | a > 0 exec if| pushl a = 1 | |_______________________| | | call e sec | pushl IP | |_______________________| | | | pushl %ebp | |_______________________| | | a > 0 exec if| pushl a = 0 | |_______________________| | | call e third | pushl IP | |___________