| 网站首页 | 业界新闻 | 群组 | 人才 | 技术文章 | 下载频道 | 博客 | 代码贴 | 编程论坛
绝地游戏外挂辅助教学千里之行 始于足下
共有 559 人关注过本帖
标题:rep movs汇编指令的问题
只看楼主 收藏
sharplong
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:120
专家分:121
注 册:2017-3-27
结帖率:92.31%
  已结贴   问题点数:20  回复次数:4   
rep movs汇编指令的问题
以下是vc6的disassembley 的一段代码,结构体的赋值操作。
22:       student = student1;
0040DE74   mov         ecx,8
0040DE79   lea         esi,[ebp-48h]
0040DE7C   lea         edi,[ebp-28h]
0040DE7F   rep movs    dword ptr [edi],dword ptr [esi]
我知道lea 是取地址,rep是重复,ecx,8是重复执行的次数。 movs是把esi指向的内存复制到edi指向的内存。
我这里猜想edi跟esi每次执行过后是会加4的。然后这段代码的功能是一段数据的复制。

------------------------------------------------------------------------------
不知猜想是否正确,edi esi真的加4吗,在哪里可以找到权威的集参考????比如movs , rep,esi edi这些  。
网上找的资料比较乱,我是初学者,求高手指点和给个权威参考书或网址。
2017-09-17 03:42
Valenciax
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:10
帖 子:160
专家分:913
注 册:2016-5-15
  得分:20 
rep movs dword ptr [edi],dword ptr [esi] 这句中 dword ptr [edi],dword ptr [esi] 不必要
基本上 rep movsd 就可以了
rep movsd表示每次移动两字dword,si和di加或减4 (视方向标志而定)
还有两种movs
rep movsw  ;字
rep movsb  ;字节
2017-09-17 20:06
sharplong
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:120
专家分:121
注 册:2017-3-27
  得分:0 
回复 2楼 Valenciax
嗯明白了,那么
改写成如下两种形式也是对的吗?
    rep movsd ptr [edi] ,ptr[esi](这种是不是不对??)
或直接
    rep movsd(会默认使用edi 跟esi吗??)

另外,我还想看一下其他指令的权威参考,版主有没有推荐呢??

[此贴子已经被作者于2017-9-17 23:52编辑过]


跟据科学研究呢,拥有一个良好的头像呢,有助于提高帖子关注度,和被友好对待的可能性:)准确来说呢,其实,我是一个演员....和兼职汽车维修员
2017-09-17 23:51
Valenciax
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:10
帖 子:160
专家分:913
注 册:2016-5-15
  得分:0 
rep movs? 就可以, 默认是ds:esi(或si) 移到 es:edi(或di)
最权威的参考自然是intel x86的六百多页的指令手册,
https://www.intel.com/content/dam/www/public/us/en/documents/manuals/64-ia-32-architectures-optimization-manual.pdf
2017-09-18 20:23
sharplong
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:120
专家分:121
注 册:2017-3-27
  得分:0 
回复 4楼 Valenciax
受教了,十分感谢。

跟据科学研究呢,拥有一个良好的头像呢,有助于提高帖子关注度,和被友好对待的可能性:)准确来说呢,其实,我是一个演员....和兼职汽车维修员
2017-09-18 23:31







关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.133426 second(s), 8 queries.
Copyright©2004-2017, BCCN.NET, All Rights Reserved