请教如何访问ISA BUS和I/O SPACE

发布于 2022-09-30 00:13:10 字数 931 浏览 15 评论 0

我知道通过0CF8和0CFC可以访问PCI DEVICE
        unsigned long AccessPci(unsigned long address)
{
        unsigned long readdata=0;
                __asm{

                mov eax,address
                mov dx,0cf8h
                out dx,eax
                mov dx,0cfch
                in  eax,dx
                mov readdata,eax
        }
                return readdata;
}

          请问如何请教如何访问ISA BUS和I/O SPACE

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

凑诗 2022-10-07 00:13:10

能不能描述清楚一点

遇见了你 2022-10-07 00:13:10

例如我知道USB 的Bus:00 DEV:02  Fun :07 REG:00
就可以通过下列程序得到此USB控制器的32位信息
/******************************************************************************
*countaddress:count the PCI device's address
*Input:
* bust,devt,funt,regt
*Output:
* address
*******************************************************************************/
unsigned long countaddress(unsigned long bust,unsigned long devt,unsigned long funt,unsigned long regt)
{
unsigned long address=0x00000000,bus,dev,fun,reg;
bus=bust<<16;
dev=devt<<11;
fun=funt<<8;
reg=regt<<2;
address=bus+dev+fun+reg;
address=address|0x80000000;
return address;
}
/*******************************************************************************
*accesspci: Access PCI device to Read info of device
*Input:
* address
*Output
* PCI info
********************************************************************************/
unsigned long AccessPci(unsigned long address)
{
unsigned long readdata=0;
  __asm{
  mov eax,address
  mov dx,0cf8h
  out dx,eax
  mov dx,0cfch
  in  eax,dx
  mov readdata,eax
}
  return readdata;
}
那么我应该怎样才能得到ISA BUS上的设备信息,或者我知道此USB controler 的IO SPACE 为0x3020,应该怎样才能得到此usb controler 的设备信息。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文