首页
社区
课程
招聘
[旧帖] [求助]本人菜鸟,请教一个汇编基础问题! 0.00雪花
发表于: 2015-4-24 17:22 1776

[旧帖] [求助]本人菜鸟,请教一个汇编基础问题! 0.00雪花

2015-4-24 17:22
1776
当前ESI的值为:24H
执行:LEA ESI,DWORD PTR DS:[ESI+ESI*4]
按照我的理解应该是将DS段,偏移地址为:ESI+ESI*4的内存单元地址,传送给寄存器ESI,可是这句执行完之后ESI的值变成了:B4H,即此句应该是执行了ESI=ESI*5

实在是不解,请教指点

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

收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
我只是问一下,ESI+ESI*4 和 ESI*5的结果会 有区别?
2015-4-25 00:01
0
雪    币: 5461
活跃值: (1410)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
LEA ESI,DWORD PTR DS:[ESI+ESI*4]
本来就是相当于ESI=ESI+ESI*4=ESI*5呀。
2015-4-25 22:53
0
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
2015-4-25 22:58
0
雪    币: 75
活跃值: (105)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
5
LEA ESI,DWORD PTR DS:[ESI+ESI*4],这句源码是OD中看到的,不是我特意书写!

综合百度查询结果:
1.lea的英文解释是: Load Effective Address.
2.Load Effective Address其实就是地址偏移量.
3.此处ESI+ESI*4就是偏移量,相当于MOV ESI,(ESI*5)
2015-4-26 12:08
0
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
Sry
6
若寄存器中值为X,内存地址为X的单元中存的是Y
那么[寄存器]=取地址x,找到地址x,取出x中存的Y
2015-4-27 09:20
0
雪    币: 85
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
不会,进来看看呀!学习下!
2015-4-28 16:24
0
雪    币: 52
活跃值: (34)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
那个 *4 是对应opcode中的某一位,好像不能是*5,去看看汇编寻址方式会得到答案
2015-5-18 15:51
0
游客
登录 | 注册 方可回帖
返回
//