|
|
@ -0,0 +1,40 @@ |
|
|
|
#include <stdio.h> |
|
|
|
|
|
|
|
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)); |
|
|
|
|
|
|
|
} |