首页
社区
课程
招聘
mov和lea 有什么区别?
发表于: 2007-4-24 16:05 8585

mov和lea 有什么区别?

2007-4-24 16:05
8585
看了一些汇编,有些不太明白

比如 lea ecx,dword ptr ss:[ebp-1C]

和 mov ecx,dword ptr ss:[ebp-1C] 会一样吗?

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

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 44229
活跃值: (19955)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
2
不一样。
假设ebp-1C=0012FFA4

0012FFA4  C0 FF 12 00 B2 35 40 00 9D 5B 40 00 A4 DC 43 00  ?.?@.漑@.ぼC.

lea     eax, dword ptr [ebp-1C] 执行后,eax=12FFA4
mov     eax, dword ptr [ebp-1C] 执行后,eax=12FFC0

有关lea,一般编译器优化时,喜欢用它完成加减等运算,如 lea eax,[eax+435+ecx]相当于eax=eax+435+ecx
2007-4-24 20:26
0
雪    币: 202
活跃值: (15)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
有点明白了!

lea eax,[XXX]指令就是把地址XXX传送到eax

mov eax,[xxx]是把地址XXX的值传送到eax

比如 lea eax,[eax+100] 和 add eax,100是一样的吧?
2007-4-25 11:25
0
雪    币: 195
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
晕 你没明白二楼的意思!
2010-6-24 21:41
0
雪    币: 195
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
LEA AX,[BP+SI+10H]
      如果 bp=3,si=4
      则 ax=17h
mov AX,[BP+SI+10H]
      如果 bp=3,si=4,BP+SI+10H=17h
      如果在 [17h]中的内容是9
      那么 ax=9
2010-6-24 21:41
0
游客
登录 | 注册 方可回帖
返回
//