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

作者: LennyW (Lenny)   2015-10-18 15:47:08
不好意思,
小弟目前想在 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
希望各位能幫小弟解答一下,
感謝。

Links booklink

Contact Us: admin [ a t ] ucptt.com