我正在嘗試在匯編中撰寫 memmove:問題是在我的部分資料中我有兩行:源和目標,當我試圖將 20 位元組從源傳遞到目標而源只有 15 位元組時從源傳遞到目標的第 16 個位元組需要是目標的第一個位元組,但源的第一個位元組已通過,
- 在第一張圖片中,我們可以看到
RAX在 21 上,那么需要傳遞的資料是source 21= 43, - 我們可以看到結果
source 21是 176(176 = source 0) 而不是應該的 43, - 在最后一張圖片中,我們可以看到
RCX里面有source 22= 122(122= source 1) 并且假設是 161
看起來代碼是回圈的,感謝您的幫助!

uj5u.com熱心網友回復:
源陣列和目標陣列在記憶體中相互跟隨。他們之間沒有隔閡。
復制回圈執行的第一次傳輸將從源(176) 讀取第一個位元組并將其寫入目標(43) 的第一個位元組。此后,價值43將永遠消失!
當您進行與 相同的source 21檢查時,僅保留值 176。destination 0
復制回圈執行的第二次傳輸將從源(122) 讀取第二個位元組并將其寫入目標(161) 的第二個位元組。此后價值161將永遠消失!
當您進行與 相同的source 22檢查時,僅保留值 122。destination 1
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/459719.html
