keikey43
驱动牛犊
驱动牛犊
  • 注册日期2002-03-27
  • 最后登录2006-10-12
  • 粉丝0
  • 关注0
  • 积分30分
  • 威望3点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
阅读:1772回复:5

I/O端口地址问题!!!

楼主#
更多 发布于:2002-04-09 17:33
我一直有一个很简单的问题,不太好意思开口问,但实在又想知道。
从书上看到I/O端口范围是:0~64kb,但我发现一般I/O端口的程序,都是以byte,word,dword三种格式读写,我就不知道每个I/O端口的内容到底是多少,难道最大只有dword吗?如果不是,为什么不用”给定一个I/O端口号和字节数,去读写这个I/O端口的内容”呢?
还有,在2000下,是不是有些I/O端口已被保护起来,是不能读写的呢?因为我用了2000ddk\\genport的例子发现改它的BASEPORT,和PortCount会出现不能读的现象。
所以这两个简单的问题请明白人给个解释好吗?
在这里先谢了。
溪流飘零
mask2000
驱动牛犊
驱动牛犊
  • 注册日期2002-04-08
  • 最后登录2002-08-14
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-04-09 17:42
端口范围和读写格式没有冲突呀。端口读写只有这几种方式。
你的发散思维不错,而且你如果可以读写到DWORD的内容,你在
读写一大片数据自己也可以再做过函数呀。
肯定是被保护起来了。大家都任意读写肯定崩机...
不是我不明白,只是这世界变化太快.
Tom.Cat
禁止发言
禁止发言
  • 注册日期2001-10-10
  • 最后登录2019-07-29
  • 粉丝1
  • 关注0
  • 积分-53792分
  • 威望197411点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
  • 社区居民
板凳#
发布于:2002-04-09 17:57
用户被禁言,该主题自动屏蔽!
keikey43
驱动牛犊
驱动牛犊
  • 注册日期2002-03-27
  • 最后登录2006-10-12
  • 粉丝0
  • 关注0
  • 积分30分
  • 威望3点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-04-09 19:40
呵呵,还是我懂得太少啊,真得很感谢两位啊。回答我这么简单的问题。 :D
溪流飘零
gdsdzrb
驱动牛犊
驱动牛犊
  • 注册日期2002-02-21
  • 最后登录2002-07-25
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-04-09 20:34
正如上面所述╋ 现在普遍就只采用BYTE╋WORD╋  DWORD三种方式╋基本上你可以通过使用不同位数的寄存器EAX╋  AX  ╋AL就可以确定是读BYTE╋WORD╋DWORD了╋另外╋1K以上的I/O端口都不是固定不变的╋例如POWER  MANAGEMENT 的BASE  ADDRESS(这个ADDRESS其实就是指向一个I/O端口, 如1000H)就可以通过修改南桥的某个REGISTER而修改
mask2000
驱动牛犊
驱动牛犊
  • 注册日期2002-04-08
  • 最后登录2002-08-14
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-04-10 09:57
到了64位计算机,就可以读8个BYTE了。


那是不是在下一代128位的计算机就可以读16个BYTE了?
不是我不明白,只是这世界变化太快.
游客

返回顶部