首页
社区
课程
招聘
[旧帖] [求助]关于dword ptr [eax-1] 的疑问 0.00雪花
发表于: 2009-5-26 00:08 1427

[旧帖] [求助]关于dword ptr [eax-1] 的疑问 0.00雪花

2009-5-26 00:08
1427
在论坛上看到的,原文地址如下:
http://bbs.pediy.com/showthread.php?t=49768

00401000  /$  8>mov     eax, dword ptr [esp+8]        ;  第二个形参给eax,我们假设是b
00401004  |.  5>push    edi                           ;  保存edi,那么edi就是第一个循环变量了,假设为i
00401005  |.  8>lea     edi, dword ptr [eax-1]        ;  edi指向eax-1,就是说将b-1的值赋给edi

我不明白的是第三句
00401005  |.  8>lea     edi, dword ptr [eax-1]        ;  edi指向eax-1,就是说将b-1的值赋给edi
问题如下:
我明白dword ptr [bp]是取地址为ss:bp中的内存的内容,
那dword ptr [eax-1]是什么意思?它是不是跟dword ptr [bp]一样?  如果是一样的话,那么dword ptr [eax-1] 中的默认段地址是哪个寄存器?

[课程]FART 脱壳王!加量不加价!FART作者讲授!

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 1450
活跃值: (35)
能力值: (RANK:680 )
在线值:
发帖
回帖
粉丝
2
寄存器简介寻址: [R]
1. 若不加segment prefix, 则R为esp, ebp时, default segment为ss. 其他为ds.
2. 若加segment prefix, 则为prefix. 如ds:[esp], ss:[eax] .

P.S.  这好像是汇编书中最前面几章的吧?
2009-5-27 08:18
0
雪    币: 40
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
顺便看一下,这部分比较晕
2010-3-12 08:55
0
雪    币: 260
活跃值: (47)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
lea是取【内存地址】中的地址,lea     edi, dword ptr [eax-1] 原理上相当于mov edi,eax-1,但是直接用MOV edi,eax-1是不对的,INTEL的MOV指令中没有提供这种寻址方式。
2010-3-12 09:16
0
雪    币: 39
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
lea     edi, dword ptr [eax-1];
我倒觉得是将上一个形参传递给edi。
2012-5-19 19:18
0
游客
登录 | 注册 方可回帖
返回
//