#include <iostream>
using namespace std;
int main()
{
00C51480 push ebp
00C51481 mov ebp,esp
00C5148A push esi
00C5148B push edi
00C5149C rep stos dword ptr es:[edi]
for(int i = 0; i < 100; i++)
00C5149E mov dword ptr [i],0
00C514A5 jmp main+30h (0C514B0h)
00C514A7 mov eax,dword ptr [i]
00C514AA add eax,1
00C514AD mov dword ptr [i],eax
00C514B0 cmp dword ptr [i],64h
00C514B4 jge main+68h (0C514E8h)
{
cout << "numbers" + i << endl;
00C514B6 mov esi,esp
00C514B8 mov eax,dword ptr [__imp_std::endl (0C5A310h)]
00C514BD push eax
00C514BE mov ecx,dword ptr [i]
00C514C1 add ecx,offset string "numbers" (0C57830h)
00C514C7 push ecx
00C514C8 mov edx,dword ptr [__imp_std::cout (0C5A314h)]
00C514CE push edx
00C514CF call std::operator<<<std::char_traits<char> > (0C51140h)
00C514D4 add esp,8
00C514D7 mov ecx,eax
00C514D9 call dword ptr [__imp_std::basic_ostream<char,std::char_traits<char> >::operator<< (0C5A2F8h)]
00C514DF cmp esi,esp
00C514E1 call @ILT+390(__RTC_CheckEsp) (0C5118Bh)
}
00C514E6 jmp main+27h (0C514A7h)
int a = 0;
00C514E8 mov dword ptr [a],0
return 0;
00C514EF xor eax,eax
}
00C514F1 pop edi
00C514F2 pop esi
00C514F3 pop ebx
00C514F4 add esp,0D8h
00C514FA cmp ebp,esp
00C514FC call @ILT+390(__RTC_CheckEsp) (0C5118Bh)
00C51501 mov esp,ebp
00C51503 pop ebp
using namespace std;
int main()
{
00C51480 push ebp
00C51481 mov ebp,esp
00C51483 sub esp,0D8h
//将ebp压栈后再将esp的值赋给ebp...esp的值减去0d8h....0d8h的那段空间做什么呢?有216个字节....
00C51489 push ebx00C5148A push esi
00C5148B push edi
00C5148C lea edi,[ebp-0D8h]
//将ebp-0d8h的有效地址载入edi......edi的值现在应该和esp一样....
//只知道编译器会将一段区间清零...大小由编译器决定....
00C51492 mov ecx,36h
//这是循环的次数....36h翻译成十进制为100....
00C51497 mov eax,0CCCCCCCCh00C5149C rep stos dword ptr es:[edi]
for(int i = 0; i < 100; i++)
00C5149E mov dword ptr [i],0
00C514A5 jmp main+30h (0C514B0h)
00C514A7 mov eax,dword ptr [i]
00C514AA add eax,1
00C514AD mov dword ptr [i],eax
00C514B0 cmp dword ptr [i],64h
00C514B4 jge main+68h (0C514E8h)
{
cout << "numbers" + i << endl;
00C514B6 mov esi,esp
00C514B8 mov eax,dword ptr [__imp_std::endl (0C5A310h)]
00C514BD push eax
00C514BE mov ecx,dword ptr [i]
00C514C1 add ecx,offset string "numbers" (0C57830h)
00C514C7 push ecx
00C514C8 mov edx,dword ptr [__imp_std::cout (0C5A314h)]
00C514CE push edx
00C514CF call std::operator<<<std::char_traits<char> > (0C51140h)
00C514D4 add esp,8
00C514D7 mov ecx,eax
00C514D9 call dword ptr [__imp_std::basic_ostream<char,std::char_traits<char> >::operator<< (0C5A2F8h)]
00C514DF cmp esi,esp
00C514E1 call @ILT+390(__RTC_CheckEsp) (0C5118Bh)
}
00C514E6 jmp main+27h (0C514A7h)
int a = 0;
00C514E8 mov dword ptr [a],0
return 0;
00C514EF xor eax,eax
}
00C514F1 pop edi
00C514F2 pop esi
00C514F3 pop ebx
00C514F4 add esp,0D8h
00C514FA cmp ebp,esp
00C514FC call @ILT+390(__RTC_CheckEsp) (0C5118Bh)
00C51501 mov esp,ebp
00C51503 pop ebp
00C51504 ret