计算机的I/O端口地址表

2023-05-16

PC的I O端口地址表 (I/O端口地址表)

http://tieba.baidu.com/f?kz=16042340

I/O端口地址表 

PC只用了10位地址线(A0-A9)进行译码,其寻址的范围为0H-3FFH,共有1024个I/O地址。
这1024个地址中前半段(A9=0,范围为0H-1FFH)是属于主机板I/O译码,
后半段(A9=1,范围为200H-3FFH)则是用来扩展插槽上的I/O译码用。
         I/O端口功能表
———————————————————————————
I/O地址 功能、用途
———————————————————————————
0    DMA通道0,内存地址寄存器(DMA控制器1(8237))
1    DMA通道0, 传输计数寄存器
2    DMA通道1,内存地址寄存器
3    DMA通道1, 传输计数寄存器
4    DMA通道2,内存地址寄存器
5    DMA通道2, 传输计数寄存器
6    DMA通道3,内存地址寄存器
7    DMA通道3, 传输计数寄存器
8    DMA通道0-3的状态寄存器
0AH    DMA通道0-3的屏蔽寄存器
0BH    DMA通道0-3的方式寄存器
0CH    DMA清除字节指针
0DH    DMA主清除字节
0EH    DMA通道0-3的清屏蔽寄存器
0FH    DMA通道0-3的写屏蔽寄存器
19H   DMA起始寄存器
20H-3FH 可编程中断控制器1(8259)使用
40H   可编程中断计时器(8253)使用,读/写计数器0
41H   可编程中断计时器寄存器
42H   可编程中断计时器杂项寄存器
43H   可编程中断计时器,控制字寄存器
44H   可编程中断计时器,杂项寄存器(AT)
47H   可编程中断计时器,计数器0的控制字寄存器
48H-5FH 可编程中断计时器使用
60H-61H 键盘输入数据缓冲区
61H   AT:8042键盘控制寄存器/XT:8255输出寄存器
62H   8255输入寄存器
63H   8255命令方式寄存器
64H   8042键盘输入缓冲区/8042状态
65H-6FH 8255/8042专用
70H   CMOS RAM地址寄存器
71H   CMOS RAM数据寄存器
80H   生产测试端口
81H   DMA通道2,页表地址寄存器
82H   DMA通道3,页表地址寄存器
83H   DMA通道1,页表地址寄存器
87H   DMA通道0,页表地址寄存器
89H   DMA通道6,页表地址寄存器
8AH   DMA通道7,页表地址寄存器
8BH   DMA通道5,页表地址寄存器
8FH   DMA通道4,页表地址寄存器
93H-9FH DMA控制器专用
0A0H   NM1屏蔽寄存器/可编程中断控制器2
0A1H   可编程中断控制器2屏蔽
0C0H   DMA通道0,内存地址寄存器(DMA控制器2(8237))
0C2H   DMA通道0, 传输计数寄存器
0C4H   DMA通道1,内存地址寄存器
0C6H   DMA通道1, 传输计数寄存器
0C8H   DMA通道2,内存地址寄存器
0CAH   DMA通道2, 传输计数寄存器
0CCH   DMA通道3,内存地址寄存器
0CEH   DMA通道3, 传输计数寄存器
0D0H   DMA状态寄存器
0D2H   DMA写请求寄存器
0D4H   DMA屏蔽寄存器
0D6H   DMA方式寄存器
0D8H   DMA清除字节指针
0DAH   DMA主清
0DCH   DMA清屏蔽寄存器
0DEH   DMA写屏蔽寄存器
0DFH-0EFH 保留
0F0H-0FFH 协处理器使用
100H-16FH保留
170H   1号硬盘数据寄存器
171H   1号硬盘错误寄存器
172H   1号硬盘数据扇区计数
173H   1号硬盘扇区数
174H   1号硬盘柱面(低字节)
175H   1号硬盘柱面(高字节)
176H   1号硬盘驱动器/磁头寄存器
177H   1号硬盘状态寄存器
1F0H   0号硬盘数据寄存器
1F1H   0号硬盘错误寄存器
1F2H   0号硬盘数据扇区计数
1F3H   0号硬盘扇区数
1F4H   0号硬盘柱面(低字节)
1F5H   0号硬盘柱面(高字节)
1F6H   0号硬盘驱动器/磁头寄存器
1F7H   0号硬盘状态寄存器
1F9H-1FFH保留
200H-20FH游戏控制端口
210H-21FH扩展单元
278H   3号并行口,数据端口
279H   3号并行口,状态端口
27AH   3号并行口,控制端口
2B0H-2DFH保留
2E0H   EGA/VGA使用
2E1H   GPIP(0号适配器)
2E2H   数据获取(0号适配器)
2E3H   数据获取(1号适配器)
2E4H-2F7H保留
2F8H   2号串行口,发送/保持寄存器(RS232接口卡2)
2F9H   2号串行口,中断有效寄存器
2FAH   2号串行口,中断ID寄存器
2FBH   2号串行口,线控制寄存器
2FCH   2号串行口,调制解调控制寄存器
2FDH   2号串行口,线状态寄存器
2FEH   2号串行口,调制解调状态寄存器
2FFH   保留
300H-31FH原形卡
320H   硬盘适配器寄存器
322H   硬盘适配器控制/状态寄存器
324H   硬盘适配器提示/中断状态寄存器
325H-347H保留
348H-357H DCA3278
366H-36FH PC网络
372H    软盘适配器数据输出/状态寄存器
375H-376H 软盘适配器数据寄存器
377H    软盘适配器数据输入寄存器
378H    2号并行口,数据端口
379H    2号并行口,状态端口
37AH    2号并行口,控制端口
380H-38FH SDLC及BSC通讯
390H-393H Cluster适配器0
3A0H-3AFH BSC通讯
3B0H-3B H MDA视频寄存器
3BCH    1号并行口,数据端口
3BDH    1号并行口,状态端口
3BEH    1号并行口,控制端口
3C0H-3CFH EGA/VGA视频寄存器
3D0H-3D7H CGA视频寄存器
3F0H-3F7H 软盘控制器寄存器
3F8H    1号串行口,发送/保持寄存器(RS232接口卡1)
3F9H    1号串行口,中断有效寄存器
3FAH    1号串行口,中断ID寄存器
3FBH    1号串行口,线控制寄存器
3FCH    1号串行口,调制解调控制寄存器
3FDH    1号串行口,线状态寄存器
3FEH    1号串行口,调制解调状态寄存器
3FFH    保留

 

2.2.1 I/O端口和寻址

http://book.51cto.com/art/200812/102818.htm

2.2  I/O端口寻址和访问控制方式

2.2.1  I/O端口和寻址

CPU为了访问I/O接口控制器或控制卡上的数据和状态信息,需要首先指定它们的地址。这种地址就称为I/O端口地址或者简称端口。通常,一个I /O控制器包含访问数据的数据端口、输出命令的命令端口和访问控制器执行状态的状态端口。端口地址的设置方法一般有两种:统一编址和独立编址。

端口统一编址的原理是把I/O控制器中的端口地址归入存储器寻址地址空间范围内。因此这种编址方式也称为存储器映像编址。CPU访问一个端口的操作与访问内存的操作一样,也使用访问内存的指令。端口独立编址的方法是把I/O控制器和控制卡的寻址空间单独作为一个独立的地址空间对待,称为I/O地址空间。每个端口有一个I/O地址与之对应,并且使用专门的I/O指令来访问端口。

IBM PC及其兼容机主要使用独立编址方式,采用了一个独立的I/O地址空间对控制设备中的寄存器进行寻址和访问。使用ISA总线结构的传统PC,其I/O地址空间范围是0x000~0x3FF,有1024个I/O端口地址可供使用。各个控制器和控制卡所默认分配使用的端口地址范围见表2-1。关于这些端口的使用和编程方法将在后面具体涉及相关硬件时再详细进行说明。

另外,IBM PC也部分地使用了统一编址方式。例如,CGA显示卡上显示内存的地址就直接占用了存储器地址空间0xB800~0xBC00范围。因此若要让一个字符显示在屏幕上,可以直接使用内存操作指令往这个内存区域执行写操作。

表2-1  I/O端口地址分配

端口地址范围 

分配说明

端口地址范围 

分配说明 

0x000~0x01F

8237A DMA控制器1

0x1F0~0x1F7

IDE硬盘控制器0

0x020~0x03F

8259A 可编程中断控制器1

0x278~0x27F

并行打印机端口2

0x040~0x05F

8253/8254A 定时计数器 

0x2F8~0x2FF

串行控制器2

0x060~0x06F

8042 键盘控制器 

0x378~0x37F

并行打印机端口1

0x070~0x07F

访问CMOS RAM/实时时钟RTC(Real Time Clock)端口 

0x3B0~0x3BF

单色MDA显示控制器 

0x080~0x09F

DMA页面寄存器访问端口 

0x3C0~0x3CF

彩色CGA显示控制器

0x0A0~0x0BF

8259A 可编程中断控制器2

0x3D0~0x3DF

彩色EGA/VGA显示控制器

0x0C0~0x0DF

8237A DMA控制器2

0x3F0~0x3F7

软盘控制器

0x0F0~0x0FF

协处理器访问端口

0x3F8~0x3FF

串行控制器1

0x170~0x177

IDE硬盘控制器1

 

 

对于使用EISA或PCI等总线结构的现代PC,有64KB的I/O地址空间可供使用。在普通Linux系统下通过查看/proc/ioports文件可以得到相关控制器或设置使用的I/O地址范围:


[root@plinux root]# cat /proc/ioports
0000-001f : dma1
0020-003f : pic1
0040-005f : timer
0060-006f : keyboard
0070-007f : rtc
0080-008f : dma page reg
00a0-00bf : pic2
00c0-00df : dma2
00f0-00ff : fpu
0170-0177 : ide1
01f0-01f7 : ide0
02f8-02ff : serial(auto)
0376-0376 : ide1
03c0-03df : vga+
03f6-03f6 : ide0
03f8-03ff : serial(auto)
0500-051f : PCI device 8086:24d3 (Intel Corp.)
0cf8-0cff : PCI conf1
da00-daff : VIA Technologies, Inc. VT6102 [Rhine-II]
da00-daff : via-rhine
e000-e01f : PCI device 8086:24d4 (Intel Corp.)
e000-e01f : usb-uhci
e100-e11f : PCI device 8086:24d7 (Intel Corp.)
e100-e11f : usb-uhci
e200-e21f : PCI device 8086:24de (Intel Corp.)
e200-e21f : usb-uhci
e300-e31f : PCI device 8086:24d2 (Intel Corp.)
e300-e31f : usb-uhci
f000-f00f : PCI device 8086:24db (Intel Corp.)
f000-f007 : ide0
f008-f00f : ide1
[root@plinux root]#  

 

 


2.3.1 主存储器

当计算机上电初始化时,物理内存被设置成从地址0开始的连续区域。除了地址从0xA0000~0xFFFFF(640KB~1MB,共384KB)和 0xFFFE0000~0xFFFFFFFF(4GB处的最后64KB)范围以外的所有内存都可用做系统内存。这两个特定范围被用于I/O设备和BIOS 程序。假如我们的计算机中有16MB的物理内存,那么在Linux 0.1x系统中,0~640KB将被用做存放内核代码和数据。Linux内核不使用BIOS功能,也不使用BIOS设置的中断向量表。640KB~1MB 之间的384KB仍然保留用作图中指明的用途。其中地址从0xA0000开始的128KB用做显示内存缓冲区,随后部分用于其他控制卡的ROM BIOS或其映射区域,而0xF0000~1MB范围用于高端系统ROM BIOS的映射区。1MB~16MB将被内核用做可分配的主内存区。另外高速缓冲区和内存虚拟盘也会占用内核代码和数据后面的一部分内存区域。该区域通常会跨越640KB~1MB的区域。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

计算机的I/O端口地址表 的相关文章

随机推荐

  • Ubuntu开机时直接进入命令行模式

    ubuntu16 04 xff0c 如下 执行下面命令即可在开机时直接进入命令行模式 xff1a sudo systemctl span class hljs operator span class hljs keyword set spa
  • CentOS6.8-minimal安装gnome桌面 安装NVC远程桌面连接

    一 安装桌面环境 64 1 安装桌面软件 yum groupinstall 34 Desktop 34 64 2 安装X Window组件 yum groupinstall 34 X Window System 34 64 3 安装字体 y
  • 在Manjaro中Debtap将deb文件转换成pkg文件后,怎么解压生成的.pkg.tar.xz包?

    接上篇博客 xff0c 本篇博客解决的问题如下 xff1a 在Manjaro中Debtap将deb文件转换成pkg文件后 xff0c 怎么处理生成的 pkg tar xz压缩包 xff1f 解决办法如下 xff1a 以我的mnetassis
  • ViewBinding和ButterKnife

    一 ViewBinding和ButterKnife比较 xff1a 传送门 1 ButterKnife一个好处就是不用写findViewById xff0c 另一个好处就是不用写setOnClickListener之类的 xff0c 满屏幕
  • 图的密度公式的解释

    一直不明白 xff0c 图的密度公式的含义 xff0c 如图所示 xff1a 分母 xff1a n n 1 2 xff0c 其实可以理解为两两相连的组合数量 比如说有6个节点 xff0c 那个两两相连的组合数为6 5 2 61 15 分子自
  • 【论文阅读】Cancelable Iris Biometric

    1 介绍 如果同时使用密钥和虹膜生物测定 xff0c 则错误拒绝率将增加 xff0c 因为恢复的密钥和汉明匹配距离都受到来自虹膜图案的噪声的影响 2 方法论 2 1 免注册转换 xff08 Registration free transfo
  • 阿里云服务器VNC连接Timed out waiting for a response from the computer报错解决方案

    首先要说明一点 xff0c 如果你是初学者 xff0c 第一次使用阿里云服务器并想获得可视化界面过程中遇到连接问题 xff0c 你可以参考以下方案 因为想要处理网页自动化测试的同时查看效果 xff0c 所以我想搞个VNC Viewer来显示
  • 发现scikit-image

    我是图形方面的新手 xff0c 写错的地方还请大家勘正 不记得从哪看到openCV与python的东西 xff0c 突然产生兴趣 xff0c 我喜欢python3 xff0c 但openCV偏偏最高只有python 2 7的支持 openC
  • Jetpack的学习

    一 ViewModel ViewModel的一个重要作用就是帮助Activity分担一部分的工作 xff0c 专门存放关于界面相关的数据 只要界面上能看到的数据 xff0c 都应该存放到ViewModel中 另外一个很重要的特性就是当手机屏
  • 【centOS 7一个解决“network.service: control process exited, code=exited status=1”方法】

    当我们用finalshell时 xff0c 发现连接不上 xff0c 用ip addr查看时 xff0c ens33没有ip xff0c 查看日志 一开始以为是没有开始网卡 xff0c 于是进入修改网卡配置参数 xff0c 修改 ONBOO
  • Ubuntu 20.04桌面文件夹图标消失及文件系统无法打开

    前言 之前遇到过服务器上桌面图标突然消失的情况 在更换系统语言之后 xff0c 桌面出现过一次这种情况 xff0c 经过重启之后就恢复了 再后来又莫名其妙出现了这么个问题 xff0c 最开始搜索的解决方案是 让你打开任务管理器 gnome
  • vim打造最强systemverilog编辑器

    更多分享内容可访问我的个人博客 https www niuiic top 更新 xff1a 1 对自动补全部分进行加强 xff0c 可以无限自定义snippets和keywords 补全能力完胜vscode 2 使用svlangserver
  • 修改CentOS VNC分辨率

    修改VNC分辨率有两个地方 1 etc sysconfig vncservers 2 usr bin vncserver 有些机器直接设置了这里就行 xff0c 有些要通过设置2才行
  • Debian11系统安装与配置Elasticsearch7.17.6

    安装方式 xff1a 使用安装包进行离线安装 1 下载安装包 下载地址 xff1a Elasticsearch 7 17 6 Elastic 选择DEB X86 64 xff0c 下载后得到文件elasticsearch 7 17 6 am
  • Windows Server 2012 R2 管理员密码忘记如何修改密码

    管理员密码忘记如何修改 人非圣贤孰能无过 有时我们经常会遇到忘记密码的尴尬场景 尤其是本机的管理员密码忘记 xff0c 那么如何更改恢复呢 xff1f xff08 如果你安装系统的过程中本身没有设置过密码 xff0c 那密码就为空或者为Ad
  • XPath 简单语法 (三)

    XPath表达式 2008 02 27 16 55 XML 文档对象模型 DOM 能够以编程方式读取 处理和修改 XML 文档 XPath 表达式 XPath 表达式使用路径表示法 xff08 与 URL 中使用的路径表示法类似 xff09
  • Error: cannot open display: localhost:0.0

    https stackoverflow com questions 12356425 error cannot open display localhost0 0 trying to open firefox from centos 6 在
  • MySQL 5.6 源码目录结构

    基于MySQL 5 6 26源码 源码目录 xff1a BUILD 构建工程的脚本 client 客户端 cmake cmd line utils 命令行工具 dbug 调试库 Docs 文档 extra 一些相对独立的次要工具 inclu
  • 计算机I/O原理

    cpu通过IO命令控制设备 xff0c cpu对设备的控制仅仅可以到达设备控制器 xff0c 无法直接控制设备 设备无法直接和cpu通信 xff0c 设备控制器通过中断机制向cpu反馈信息 即这个一个模型 CPU IO指令 gt 设备控制器
  • 计算机的I/O端口地址表

    PC的I O端口地址表 xff08 I O端口地址表 xff09 http tieba baidu com f kz 61 16042340 I O端口地址表 PC只用了10位地址线 A0 A9 进行译码 xff0c 其寻址的范围为0H 3