c和汇编混合编程----main的反汇编

想看一下main函数的反汇编程序,分析一下:

int main()
{
	return 0;
} 

反汇编:

1:    int main()
2:    {
00401010 55                   push        ebp			;将ebp压入栈
00401011 8B EC                mov         ebp,esp	;把esp赋值给ebp
00401013 83 EC 40             sub         esp,40h	;esp减少40h
00401016 53                   push        ebx				;ebx也入栈
00401017 56                   push        esi				;esi压入栈
00401018 57                   push        edi				;edi入栈
00401019 8D 7D C0             lea         edi,[ebp-40h]	;将ebp-40h的值赋值给edi
0040101C B9 10 00 00 00       mov         ecx,10h		;ecx赋值为10h
00401021 B8 CC CC CC CC       mov         eax,0CCCCCCCCh	;eax赋值为0CCCCCCCCh
00401026 F3 AB                rep stos    dword ptr [edi]                   
3:        return 0;
00401028 33 C0                xor         eax,eax 			;将eax赋值为0
4:    }
0040102A 5F                   pop         edi					;出栈的数据赋值给edi
0040102B 5E                   pop         esi					;出栈的数据赋值给esi
0040102C 5B                   pop         ebx					;出栈的数据赋值给ebx
0040102D 8B E5                mov         esp,ebp		;将ebp的值传给esp
0040102F 5D                   pop         ebp					;出栈的数据赋值给ebp
00401030 C3                   ret								

如果不认识rep和stor指令,可以看一下这篇文章

rep和stos指令

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值