rep movsd + rep movsb 内联实现 strcpy
生活随笔
收集整理的這篇文章主要介紹了
rep movsd + rep movsb 内联实现 strcpy
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
下面的代碼片段是一個內(nèi)聯(lián)的 strcpy ,not ecx 為止是計算源字符串的長度(含NULL),00402646 到 00402651 是以4字節(jié)為單位復(fù)制,最后3行是把剩下的0-3字節(jié)復(fù)制過去。
.text:00402632 mov edi, offset aSystemrootSyst ; "%SYSTEMROOT%\\system32\\" .text:00402637 lea edx, [ebp+Src] .text:0040263D or ecx, 0FFFFFFFFh .text:00402640 xor eax, eax .text:00402642 repne scasb .text:00402644 not ecx ; ecx = 源字符串長度含結(jié)尾 NULL .text:00402646 sub edi, ecx .text:00402648 mov esi, edi ; 令 esi 指向 aSystemrootSyst .text:0040264A mov eax, ecx .text:0040264C mov edi, edx .text:0040264E shr ecx, 2 .text:00402651 rep movsd ; 先以4字節(jié)為單位復(fù)制 .text:00402653 mov ecx, eax .text:00402655 and ecx, 3 .text:00402658 rep movsb ; 復(fù)制剩下的 0~3 個字節(jié)總結(jié)
以上是生活随笔為你收集整理的rep movsd + rep movsb 内联实现 strcpy的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: repne scasb 内联实现 str
- 下一篇: repne scasb + rep mo