首页
社区
课程
招聘
[求助]何谓dereferenced?
2008-11-23 09:12 6959

[求助]何谓dereferenced?

2008-11-23 09:12
6959
.data
ByteArray BYTE 10h, 20h, 30h, 40h, 50h, 60h, 70h, 80h
.code
    INVOKE Swap, ADDR [ByteArray + 0], ADDR [ByteAray + 1]

The program will assemble and run, but when ESI and EDI are deferenced, 32-bit values are exchanged.

在书上看到一段叙述
请问何谓"dereferenced"?

[培训]《安卓高级研修班(网课)》月薪三万计划,掌 握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
点赞0
打赏
分享
最新回复 (3)
雪    币: 2108
活跃值: (21)
能力值: (RANK:260 )
在线值:
发帖
回帖
粉丝
书呆彭 6 2008-11-23 17:35
2
0
dereference,直接译为“解引用”,是C/C++中用于指针类型的 * 操作符的一种译法,台湾译为“指针提领”。

你给的例子不完整,看不出来到底说的是什么,不过据我猜测,Swap函数的参数莫非是通过esi和edi传递的,而书中的dereference说的是当esi,edi寄存器被访问时??

属于猜测,可能说得不对。如果有个完整的代码,可能更容易理解。
雪    币: 214
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
magicfx 2008-11-23 23:06
3
0
mov esi, pValX
mov edi, pValY
mov eax, [esi]
xchg eax, [edi]
mov [esi], eax
ret
雪    币: 723
活跃值: (81)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
mik 4 2008-11-23 23:23
4
0
书呆彭说得没错。
dereference 一般是c/c++的术语

int a;
int *p = &a;
*p = 10;              // *p 是 dereference 的过程
------------------------------------------------
mov eax,


mov dword ptr [eax], 10

游客
登录 | 注册 方可回帖
返回