[問題] Debug32_Go指令與記憶體位址讀取

看板ASM (組合語言)作者 (Lenny)時間9年前 (2015/10/18 15:47), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
不好意思, 小弟目前想在 Dos 底下對 PCI Motion卡 Bar2的地方進行記憶體位址讀寫的動作, 已確認過Bar2是設定為Memory-Mapped I/O 的存取方式。 透過RU.exe的工具確認,BAR2的記憶體位址 從 FC000000 開始算起,總共64Kb。 當我在 Dos 底下透過 Debug32 對 FC000000 進行讀取的時候,會發生回傳 FFFFFFFF 的狀況, 寫入的情況也是一樣, 但是當執行 -Go 的指令之後,就可已成功讀寫 BAR2 裡的任一記憶體位址的值, 而如果再執行一次 -Go 的話,變成又無法讀寫 的狀況,感覺就像是個開關一樣。 這是比較疑惑的地方,到底 -Go 的指令做了 什麼事情。 目前也在K PCI spec 和其他的datasheet, 但仍然找不到要得答案。 p.s. 下 -Go 指令時, 它從21DB:0000執行到21DB:FFF3才停止, 而 FFF4 指令是 JMP Far 。 以下是在 Debug32 裡寫的讀取指令 mov esi,fc000000h mov eax,[esi] int 20h 希望各位能幫小弟解答一下, 感謝。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.36.154.210 ※ 文章網址: https://www.ptt.cc/bbs/ASM/M.1445154431.A.0F1.html
文章代碼(AID): #1M8qv_3n (ASM)
文章代碼(AID): #1M8qv_3n (ASM)