[问题] 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