首页
社区
课程
招聘
[旧帖] 菜鸟求助汇编问题 0.00雪花
发表于: 2010-1-11 20:30 6907

[旧帖] 菜鸟求助汇编问题 0.00雪花

2010-1-11 20:30
6907
mov eax,dword ptr[esi]
这句什么意思?

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (17)
雪    币: 444
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
把寄存器esi里的值当做地址,取其4个字节长度的数值,赋值给eax
2010-1-11 23:04
0
雪    币: 19
活跃值: (1086)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
或者ESI里面的值,把ESI里面的值作为内存地址   然后找到这个内存地址里面的值
接着取四个字节      把它放到EAX里面去

这个内存地址里面的值依然保持不变
2010-1-11 23:18
0
雪    币: 109
活跃值: (10)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
4
把esi这值代表的地址 取这个地址里面的值双字长度传给eax。
2010-1-12 07:52
0
雪    币: 11
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
我补充一点:
1个二进制位称为1个bit,8个二进制位称为1个Byte,也就是1个字节(8位),2个字节就是1个Word(1个字,16位),则DWORD(DOUBLE WORD)就是双字的意思,两个字(32位)
http://baike.baidu.com/view/999769.htm?fr=ala0_1

其中esi 和 eax都是寄存器 ptr 好像是表示的是强制转换
2010-1-12 12:51
0
雪    币: 17
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
贾宝玉正解,^_^
2010-1-12 13:45
0
雪    币: 26
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
[esi]在汇编中用中括号括起来的数据表示一个内存单元,esi的值就是内存单元地址
esi的值如果是0,那意思就是把[0]单元内里内容赋值给eax
dword ptr 表示传递的是双字型数据,一个双字节型数据占4个字节
2010-1-12 14:36
0
雪    币: 7
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
eax是32位的累加寄存器,一般用来存放 临时数据, esi是32位源变址寄存器
2010-1-12 16:29
0
雪    币: 30
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
把寄存器esi中的值赋值给eax,这样做的目的在于eax一般存贮变量
2010-1-13 20:17
0
雪    币: 256
活跃值: (11)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
10
把ESI的内容COPY到EAX中
2010-1-13 20:26
0
雪    币: 71
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
楼上几位回答了。建议楼主多看看汇编方面的基础书籍.
2010-1-14 12:31
0
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
-------------
2010-1-14 18:21
0
雪    币: 30
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
寄存器esi里的内容 取4个字节  传送给eax
2010-1-14 22:14
0
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
把esi中的值以四字节长度移入eax
2010-1-15 11:40
0
雪    币: 56
活跃值: (276)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
将寄存器esi里的值,以每次4个字节长度的数值,移入eax寄存器中。再加上5楼的解释应该较为全面了。楼主可以解贴了。
2010-1-17 20:43
0
雪    币: 285
活跃值: (16)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
16
呵呵,越说越乱
假如esi = 401000
mov eax,dword ptr[esi]
就是将401000开始的4个字节 赋给 eax
2010-1-17 20:47
0
雪    币: 285
活跃值: (16)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
17
dword ptr 表示一个 DWORD * 也就是指向双字的指针
2010-1-17 20:49
0
雪    币: 285
活跃值: (16)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
18
贾兄弟,别误导人家啊 ptr不是强制转换啊,dword ptr 就是说明esi是4字节指针,只是说明
2010-1-17 20:55
0
游客
登录 | 注册 方可回帖
返回
//