硬件的端口地址是怎么确定的。

tiongkohlang 2001-06-16 11:40:00
IO地址是不是都是规定好了的。如果我新插了一个设备,怎么才能使他工作。据说即插即用就是为了解决这个问题的,这都是怎么回事?
另外,把IO端口映射到内存地址是怎么实现的。
...全文
845 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
wmdng 2001-06-20
  • 打赏
  • 举报
回复
因为 pc 最早是 IBM 的,它给外设分配了一些 IO 地址,以后其它厂商为了兼容也采用了相同的
地址。如 键盘控制器的地址,CMOS 的70H,71H,VGA 的地址等。它们是通过对IO地址的硬件译码电路实现的。再以后大多是一些硬件和软件厂商联合起来,制定一些标准来分配一些IO地址。
再以后,到了PCI的时代,规定了每个PCI设备有 256 BYTEs 的配置空间(通过PCI配置寄存器来存取),在这256字节中的前16(不准)个双字是有特定的意义的,比如 内存 IO 地址的分配外设的生产厂家号等(详细可查PCI标准的有关文档),只有分陪了IO地址才可以被该设备使用。
leky2000 2001-06-19
  • 打赏
  • 举报
回复
IO地址是都是规定好了的,这有硬件决定的,但也不是绝对的,就象你可以控制一个开关一样,也可以转变他的地址
seedundersnow 2001-06-19
  • 打赏
  • 举报
回复

您的问题实在是大,写成书,重量超过一公斤,我没有办法回答

linchuanzai 2001-06-19
  • 打赏
  • 举报
回复
看看中南大学出版社出的《微型计算机系统及应用》,杨路明 编
里面说得很清楚!
树木 2001-06-18
  • 打赏
  • 举报
回复
80X86系列的计算机使用专门的IO指令,就是IN,OUT。
还有些计算机则不设置专门的IO指令,他们将外围设备接口中的寄存器与主存单元统一编址,形成总线地址。这样,外设就可以看作是总线地址所覆盖的存贮空间的一部分,也就可以用访问内存的指令访问外设!
主要看机器吧!
tiongkohlang 2001-06-17
  • 打赏
  • 举报
回复
但是书上说访问设备有三种方法:1,in/out指令。2,把io地址映射到内存。3,dma。是不是我把第二种方法理解错了。
azuo_lee 2001-06-17
  • 打赏
  • 举报
回复
io端口地址是译码器译出来的。一般主板上的标准设备其译码电路是固定的,io端口也是固定的。而PCI插槽上的设备,如果设备本身的译码电路支持(比如用跳线),它的io端口是可以更改的。另外由于windows使用虚拟设备,io端口有可能被重新映像。

你新插了一个设备,照说明书操作应该就可以使它工作。

io端口与内存地址在80x86系列的计算机中是独立编址的,分别用不同的指令操作,不存在什么二者映射的问题。

21,459

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧