查看“Port IO”的源代码
←
Port IO
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
x86体系结构将地址空间分为两个编程上不同的两组: 内存(memory)和端口(ports)。 在早古时代上,内存被用作数据存储,读写操作不会产生副作用,而端口被用来控制外部硬件,这些硬件需要不同的计时方式来工作。 这也是访问端口比访问内存慢得多的原因。 而许多其他常见的计算机体系结构具有统一的空间,其中设备以与内存相同的速度运行,或者地址空间被划分为具有单独可配置属性的块。 现代x86硬件越来越倾向于统一空间,但出于遗留原因,仍然包含端口。 ==如何访问端口== x86包含四个从端口空间读取的汇编操作码(opcodes,译者注:CPU指令): IN、INS*、OUT和OUTS* 都有8位和16位版本,386及更高版本也有32位版本。 == 某个设备含有哪些端口 == 有三组设备,每组都需要不同的方法查明端口分配情况。 第一组包括所有PC-AT硬件、设备,如[[PIT|PIT-定时器]]、[[PIC|PIC-中断控制器]]、[[Keyboard Controller|PS/2-键盘控制器]]端口、[[Serial ports|串口]]和并行端口、软盘和[[IDE|IDE-磁盘]],以及[[VGA Hardware|VGA-显示器]]。 在过去,设备被连接到固定的端口地址,它们保留端口地址固定在那里是为了向后兼容。 查阅编程信息将告诉您需要使用的端口。 第二类是即插即用(plug-and-play)硬件。 包含大多数现代的插卡和可选设备如PCI、AGP或PCI express。 在启动时,将检查它们的端口要求,并且BIOS将为每个设备分配端口范围。 枚举[[PCI]]总线将列出所有这些设备,还可以告诉您它们使用的端口(和内存映射范围)。 第三组是旧的非即插即用兼容硬件。 它们具有跳线或固定地址,可以物理地选择正在使用的端口。 大多数ISA卡都是这样的。 您必须探测端口范围以查找可能的位置,以查看有问题的设备是否存在。 或者,您可以要求用户输入详细信息以进行配置 (例如DOS游戏中看到的soundblaster配置)。 问题是,很难列出所有设备,这使得映射时保证其他设备没有冲突成为一个潜在问题。 == 此端口上可能有哪些设备 == 唯一可行的方法是找到系统上的所有设备,然后在所有设备中分析您想要的端口。 但这种查询几乎没有任何用处。 [[Category:X86]]
返回至“
Port IO
”。
导航菜单
个人工具
登录
命名空间
页面
讨论
变体
已展开
已折叠
查看
阅读
查看源代码
查看历史
更多
已展开
已折叠
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
工具
链入页面
相关更改
特殊页面
页面信息