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等指令
