- 论坛徽章:
- 0
|
我是一菜鸟,刚接触到汇编,在观察一个简单的函数调用的反汇编代码的时候对EBP和ESP的变化始终没弄清楚,下面是截取的一小部分代码
---------------------------------------------------------------
17: int main(){
00401100 push ebp
00401101 mov ebp,esp
00401103 sub esp,4Ch
00401106 push ebx
00401107 push esi
00401108 push edi
00401109 lea edi,[ebp-4Ch]
0040110C mov ecx,13h
00401111 mov eax,0CCCCCCCCh
00401116 rep stos dword ptr [edi]
18: int a = 1,b = 2;
00401118 mov dword ptr [ebp-4],1
0040111F mov dword ptr [ebp-8],2
------------------------------------------------------------------
一.push ebx,push esi,push edi后此时ebp和esp存放的内容分别指向什么地方?
二. int a =1,b =2;的反汇编代码 mov dword ptr[ebp-4],1 这里,mov dword ptr[ebp-4]为什么没有把开始push的ebx覆盖掉,那此时ebp中的内容指向的位置是什么地方呢?ebp在寄存器值push的过程中也在改变? |
|