REP——重复指令


REP指令:按照计数寄存器(ECX)中指定的次数重复执行字符串指令

如:

  MOV ECX,10  ——表示当前ECX中存储的循环次数是10(16进制),就是如果执行循环的话会执行16次(10进制)

  REP MOVSD  ——表示重复执行MOVSD指令ECX中存储的值(16)次。它不会去找EAX,EDX,EBS。只会去找ECX

            每次循环ECX的值都会减一

例:

(1)EAX&ESI&EDI存的值分别是:

 

 

 

 

 

(2)ESI和EDI存储的地址中的数据分别是:

  • ESI及向后16个双字都存储了 0000 0000:

    

 

 

 

  • EDI及向后16个双字(DWORD)都不是0000 0000:

   

(3)执行的指令是:REP MOVS DWORD PTR ES:[EDI],DWORD PTR DS:[ESI]                           (REP MOVSD)

(4)执行结果是:

  

 

(5)相应的EXC&ESI&EDI的值:

  

 

可以看到EDI及向后16个双字均复制为ESI及向后的16个双字,且ECS的值在执行完REP指令后变成了0.

 

 或者:REP STOSD等指令

 

 

 

 

 

 

  


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM