能力值:
(RANK:280 )
|
-
-
2 楼
opcode 8D是LEA
ModR/M 34是ESI并且后续接了一个SIB字节
SIB B6是ESI+ESI*4
LEA和MOV的区别就是前者传递是地址,而后者传递的是该地址指向的数据
这个传入ESI的地址单独而言可能没有意义
但结合上下文很可能是用于指针的相对地址,例如*(ptr+i*5)
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
学习了`````
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
没错,这命令有点特别,好像以前有人讨论过好激烈。
有中括号括起来的,直接把结果送过去,
没括号的就把地址送过去
个人理解
|
能力值:
(RANK:280 )
|
-
-
5 楼
楼上的理解是针对mov的,lea是load effective address的缩写,这条指令是用来计算第二个操作数的有效地址并存入第一个操作数内,因此只是传递指针并不会传递指针指向的数据
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
楼上可否帮个忙
将这段代码执行后 EDI的计算式写出来 以方便我好好分析一下,感谢。
0401548 |> BF BC020000 MOV EDI,2BC
0040154D |. BE 30000000 MOV ESI,30
00401552 |. B8 48000000 MOV EAX,48
00401557 |. 99 CDQ
00401558 |. F7FB IDIV EBX
0040155A |. 29C6 SUB ESI,EAX
0040155C |. 8D34B6 LEA ESI,DWORD PTR DS:[ESI+ESI*4]
0040155F |. 29F7 SUB EDI,ESI
00401561 |. 6BFF 6B IMUL EDI,EDI,6B
00401564 |. 81EF 6CCF0000 SUB EDI,0CF6C
|
能力值:
( LV4,RANK:45 )
|
-
-
7 楼
http://www.pediy.com/bbshtml/BBS5/pediy50552.htm
http://bbs.pediy.com/showthread.php?s=&threadid=31840
自己去看
人家哪有时间帮你看原理和运算
如果你连自己看的兴趣都没有
告诉你答案 你会有兴趣吗
你连探索的意思都没有
求的结果 你的感觉是什么
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
0040155C |. 8D34B6 LEA ESI,DWORD PTR DS:[ESI+ESI*4]
个人觉得是把ESI+ESI*4所指向地址的数据长度给ESI
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
7楼的批评有点自以为是了吧!
答案我有 只是和自己做出来的不一样 才有了上面的请求。
不是想和你争辩,只是想为自己澄清一下。。。。
|
能力值:
( LV9,RANK:180 )
|
-
-
10 楼
http://bbs.pediy.com/showthread.php?t=40504
第3帖
|
能力值:
( LV4,RANK:50 )
|
-
-
11 楼
你这段少了ebx的值,LEA ESI,DWORD PTR DS:[ESI+ESI*4]是可以的,将5*esi的值直接传给esi。
00401548 |> BF BC020000 MOV EDI,2BC
0040154D |. BE 30000000 MOV ESI,30
00401552 |. B8 48000000 MOV EAX,48 //以上是三个常数
00401557 |. 99 CDQ //双字扩展
00401558 |. F7FB IDIV EBX //48/ebx,商入ex, 余数入dx//(注)如果ebx=6,那么运算后eax=C.
0040155A |. 29C6 SUB ESI,EAX //esi=esi-eax (注)esi=30-C=24
0040155C |. 8D34B6 LEA ESI,DWORD PTR DS:[ESI+ESI*4] //esi=5*esi=5*(esi-eax) (注):esi=5*24=B4
0040155F |. 29F7 SUB EDI,ESI //edi=edi-esi=edi-5*(esi-eax) (注):edi=2BC-B4=208
00401561 |. 6BFF 6B IMUL EDI,EDI,6B //edi=edi*6B=[edi-5*(esi-eax)]*6B (注)edi=208*6B=D958
00401564 |. 81EF 6CCF0000 SUB EDI,0CF6C //edi=edi-0CF6C=[edi-5*(esi-eax)]*6B-0CF6C (注)edi=D958-CF6C=9EC(十进制就是2540)
|
能力值:
( LV13,RANK:970 )
|
-
-
12 楼
[QUOTE=锐捷技术;496708]0040155C |. 8D34B6 LEA ESI,DWORD PTR DS:[ESI+ESI*4]
个人觉得是把ESI+ESI*4所指向地址的数据长度给ESI[/QUOTE]
esi = esi * 5
lea是专业计算这类公式的
|
能力值:
( LV2,RANK:10 )
|
-
-
13 楼
感谢11楼的兄弟!!!
|
|
|