服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - C/C++ - 汇编语言rep movsd 的使用详解

汇编语言rep movsd 的使用详解

2020-12-30 11:49C语言教程网 C/C++

rep movsd 每次ecx!=0便执行movsd ,然后ecx=ecx-1 movsd移动ds:[si] 到es:[di],在32位汇编下可以用esi代替si,edi代替di

mov esi,offset @s1
mov edi,offset @s2
mov ecx,10
cld
rep movsd

1.rep movsd 每次ecx!=0便执行movsd ,然后ecx=ecx-1 movsd移动ds:[si] 到es:[di],在32位汇编下可以用esi代替si,edi代替di

2.同时由于在一般exe中ds = es 程序起始位置所以另esi = offset @s1就可以找到变量s1 ,edi= offset @s2就可以找到变量s2

3.movsd此类指令有个性质,当标志位d=0时执行一次esi = esi +1,edi= edi+ 1  

   d=1时执行一次esi = esi +1,edi= edi+ 1

所以此段指令的含义是从s1复制ecx个dword到s2

延伸 · 阅读

精彩推荐