|
发表于 2016-8-11 09:52:45
|
显示全部楼层
你可以反汇编看下
- int main()
- { int x=1;
- 013F1430 push ebp
- 013F1431 mov ebp,esp
- 013F1433 sub esp,0D8h
- 013F1439 push ebx
- 013F143A push esi
- 013F143B push edi
- 013F143C lea edi,[ebp-0D8h]
- 013F1442 mov ecx,36h
- 013F1447 mov eax,0CCCCCCCCh
- 013F144C rep stos dword ptr es:[edi]
- 013F144E mov dword ptr [x],1
- int y;
- if(x>0)
- 013F1455 cmp dword ptr [x],0
- int y;
- if(x>0)
- 013F1459 jle main+3Ch (013F146Ch)
- y=f(x);
- 013F145B mov eax,dword ptr [x]
- 013F145E push eax
- 013F145F call f (013F11EAh) //调用f函数后一步步向下走
- 013F1464 add esp,4
- 013F1467 mov dword ptr [y],eax
- else
- 013F146A jmp main+4Dh (013F147Dh) //来到这里就是else 直接跳走到下面
- y=-f(x);
- 013F146C mov eax,dword ptr [x]
- 013F146F push eax
- 013F1470 call f (013F11EAh)
- 013F1475 add esp,4
- 013F1478 neg eax
- 013F147A mov dword ptr [y],eax
- printf("%d",y); //printf
- 013F147D mov esi,esp
- 013F147F mov eax,dword ptr [y]
- 013F1482 push eax
- 013F1483 push 13F5D0Ch
- 013F1488 call dword ptr ds:[13F92BCh]
- 013F148E add esp,8
- 013F1491 cmp esi,esp
- 013F1493 call __RTC_CheckEsp (013F113Bh)
- }
复制代码 |
|