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