#include void A(); void B(int a, int b, int c); int main() { A(); return 0; } void A() { unsigned int a = 1; unsigned int b = 2; unsigned int c = 3; B(a,b,c); } void B(int d, int e, int f) { int g; unsigned int _ebp; __asm__( "movl %%ebp,%0\n\t" \ :"=r" (_ebp)); g=4; printf(" [ebp-12] --?? = %p --- %d \n [ebp-08] --?? = %p --- %d \n [ebp-04] --?? = %p --- %d \n [ebp+00] -oebp= %p --- %p \n [ebp+04] -ret = %p --- %p \n [ebp+08] -- d = %p --- %d \n [ebp+12] -- e = %p --- %d \n [ebp+16] -- f = %p --- %d \n ", (unsigned *)(_ebp-12), *(unsigned *)(_ebp-12), (unsigned *)(_ebp-8), *(unsigned *)(_ebp-8), (unsigned *)(_ebp-4), *(unsigned *)(_ebp-4), (unsigned *)(_ebp), *(unsigned *)(_ebp), (unsigned *)(_ebp+4), *(unsigned *)(_ebp+4), (unsigned *)(_ebp+8), *(unsigned *)(_ebp+8), (unsigned *)(_ebp+12), *(unsigned *)(_ebp+12), (unsigned *)(_ebp+16), *(unsigned *)(_ebp+16)); }