首页
社区
课程
招聘
[旧帖] [求助]请问下面这2句是什么意思? 0.00雪花
发表于: 2009-4-29 23:53 2924

[旧帖] [求助]请问下面这2句是什么意思? 0.00雪花

2009-4-29 23:53
2924
mov    eax,2
mov    dword ptr [esp+8], eax
lea      eax, dword ptr [esp+8]

为什么执行完后 eax不是2?

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 205
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
我是个初学,我的理解是:在函数中定义了局部变量,长度为12 ,貌似是3个4字节的变量,然后将eax 赋值 2,然后将最下面栈内最下面的那个局部变量赋值=eax,这个使用dword ptr [esp+8] 应该等于2 吧,
lea eax,dword ptr [esp+8]  可以看成是:
mov eax,esp
add eax,8

难道这个时候 eax 里装的是指向 esp+8 的指针地址,而不是 [esp+8] 是吧,请老鸟来解释下
2009-4-30 00:18
0
雪    币: 399
活跃值: (38)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
3
[QUOTE=rafaelcn;614200]
lea eax,dword ptr [esp+8]  可以看成是:
mov eax,esp
add eax,8
[/QUOTE]
你自己已经看懂了啊,eax最后就等于esp+8
2009-4-30 06:50
0
雪    币: 339
活跃值: (10)
能力值: ( LV9,RANK:260 )
在线值:
发帖
回帖
粉丝
4
楼上说的不错,这是lea比较另类的一种用处
2009-4-30 10:04
0
游客
登录 | 注册 方可回帖
返回
//