`
yiyeqinghuasoon
  • 浏览: 645471 次
文章分类
社区版块
存档分类
最新评论

菜鸟学反汇编7—for

 
阅读更多

#include<iostream>

#include<iostream>

using namespace std;

using namespace std;

int main()

int main()

{

{

int i=0;

for(int i=0;i<10;i++)

for(i=0;i<10;i++)

{

{

cout<<i;

}

}

}

}

var_4= dword ptr -4

var_4= dword ptr -4

argc= dword ptr 8

argc= dword ptr 8

argv= dword ptr 0Ch

argv= dword ptr 0Ch

envp= dword ptr 10h

envp= dword ptr 10h

push ebp

push ebp

mov ebp, esp

mov ebp, esp

push ecx

push ecx

mov [ebp+var_4], 0

mov [ebp+var_4], 0

mov [ebp+var_4], 0

jmp short loc_40101D

jmp short loc_401016

loc_401014:

loc_40100D:

mov eax, [ebp+var_4]

mov eax, [ebp+var_4]

add eax, 1

add eax, 1

mov [ebp+var_4], eax

mov [ebp+var_4], ea

loc_40101D:

loc_401016:

cmp [ebp+var_4], 0Ah

cmp [ebp+var_4], 0Ah

jge short loc_401025

jge short loc_40102C

jmp short loc_401014

mov ecx, [ebp+var_4]

push ecx

mov ecx, offset unk_420838

call sub_401040

jmp short loc_40100D

loc_401025:

loc_40102C:

xor eax, eax

xor eax, eax

mov esp, ebp

mov esp, ebp

pop ebp

pop ebp

retn

retn

反思:

可以在这段代码中发现也有push eax。这儿可以猜测是因为编译器给程序中可能用到的变量而预留的。而在最后mov esp,ebp使堆栈平衡。

下步:

do_while循环

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics