反汇编 for(int i=0;i100;i++)

#pragma warning(disable:4996)
int _tmain(int argc, _TCHAR* argv[])
{
	int num = 0;
	for (int i=0; i < 101; i++)
	{
		num = num + i;
	}
	printf("num %d\n", num);
	getchar();
	return 0;
}

int num = 0;
00843CFE  mov         dword ptr [num],0  
	for (int i=0; i < 101; i++)
00843D05  mov         dword ptr [ebp-14h],0  
00843D0C  jmp         wmain+37h (0843D17h)  先跳去判断执行一次
00843D0E  mov         eax,dword ptr [ebp-14h]  书上说的的初始化
00843D11  add         eax,1  
00843D14  mov         dword ptr [ebp-14h],eax  
00843D17  cmp         dword ptr [ebp-14h],65h  
00843D1B  jge         wmain+48h (0843D28h)  跳出循环
	{
		num = num + i;
00843D1D  mov         eax,dword ptr [num]  
00843D20  add         eax,dword ptr [ebp-14h]  
00843D23  mov         dword ptr [num],eax  
	}
00843D26  jmp         wmain+2Eh (0843D0Eh) 跳上去i++
	printf("num %d\n", num);
00843D28  mov         esi,esp  
00843D2A  mov         eax,dword ptr [num]  
00843D2D  push        eax  
00843D2E  push        845858h  
00843D33  call        dword ptr ds:[849110h]  
00843D39  add         esp,8  
00843D3C  cmp         esi,esp  
00843D3E  call        __RTC_CheckEsp (0841140h)  
	getchar();

猜你喜欢

转载自blog.csdn.net/qq1841370452/article/details/81536084