汇编--C++/c返回值代码分析

汇编–C++/c返回值代码分析

函数调用、返回值运用的代码
10: main()

11: {

00401050 push ebp

00401051 mov ebp,esp

00401053 sub esp,44h

00401056 push ebx

00401057 push esi

00401058 push edi

00401059 lea edi,[ebp-44h]

0040105C mov ecx,11h

00401061 mov eax,0CCCCCCCCh

00401066 rep stos dword ptr [edi]

12:

13: int m;

14: m=plus(1,3);

00401068 push 3

0040106A push 1

0040106C call @ILT+0(plus) (00401005)

00401071 add esp,8

00401074 mov dword ptr [ebp-4],eax //这个是存入数据的语句,这个时候调用plus函数已经堆栈平衡了,这层调用是发生在main函数内的 ebp-4是变量,一般返回值都是写在eax内的

15: printf(“m=%d”,m);

00401077 mov eax,dword ptr [ebp-4]

0040107A push eax

0040107B push offset string “m=%d” (0042201c)

00401080 call printf (004010b0)

00401085 add esp,8

16: __asm

17: {

18: mov eax,eax

00401088 mov eax,eax

19: }

20: return;

21:

22: }

0040108A pop edi

0040108B pop esi

0040108C pop ebx

0040108D add esp,44h

00401090 cmp ebp,esp

00401092 call __chkesp (00401130)

00401097 mov esp,ebp

00401099 pop ebp

0040109A ret

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白帽小丑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值