菜鸟学反汇编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循环

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值