SaKuLa 发表于 2016-9-22 21:28

一个指令把我弄的头昏了!

本帖最后由 SaKuLa 于 2016-9-27 00:12 编辑

mov esi,00400000
mov edi,dump
mov ecx,4000000
rep movsd         


这一段指令加上 rep movsd   如何理解?
求解答




我自己已经解决了 {:5_116:}


列如:我要复制00400000-00401000 之间的内存大小那么就是00401000-00400000=10001000就是我要的大小
mov esi,00400000
mov edi,dump
mov ecx,1000/4    //因为我是rep movsd movsd 就是四字节的传送 那么就是1000/4 的大小
rep movsd         

EHAIAA 发表于 2016-9-22 22:35

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

米其林轮胎 发表于 2016-9-23 19:49

你这个我怎么看着想DNF的dump啊{:6_198:}

SaKuLa 发表于 2016-9-25 17:10

oo1009304738 发表于 2016-9-23 19:49
你这个我怎么看着想DNF的dump啊

呵呵同道中人啊   不过问题我已经解决了

墨白 发表于 2016-9-26 12:25

楼主解决了???

SaKuLa 发表于 2016-9-26 16:38

列如:我要复制00400000-00401000 之间的内存大小那么就是00401000-00400000=10001000就是我要的大小
mov esi,00400000
mov edi,dump
mov ecx,1000/4    //因为我是rep movsd movsd 就是四字节的传送 那么就是1000/4 的大小
rep movsd         
页: [1]
查看完整版本: 一个指令把我弄的头昏了!