• 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端口地址分配

    端口地址范围 

    分配说明

    端口地址范围 

    分配说明 

    0x0000x01F

    8237A DMA控制器1

    0x1F00x1F7

    IDE硬盘控制器0

    0x0200x03F

    8259A 可编程中断控制器1

    0x2780x27F

    并行打印机端口2

    0x0400x05F

    8253/8254A 定时计数器 

    0x2F80x2FF

    串行控制器2

    0x0600x06F

    8042 键盘控制器 

    0x3780x37F

    并行打印机端口1

    0x0700x07F

    访问CMOS RAM/实时时钟RTCReal Time Clock)端口 

    0x3B00x3BF

    单色MDA显示控制器 

    0x0800x09F

    DMA页面寄存器访问端口 

    0x3C00x3CF

    彩色CGA显示控制器

    0x0A00x0BF

    8259A 可编程中断控制器2

    0x3D00x3DF

    彩色EGA/VGA显示控制器

    0x0C00x0DF

    8237A DMA控制器2

    0x3F00x3F7

    软盘控制器

    0x0F00x0FF

    协处理器访问端口

    0x3F80x3FF

    串行控制器1

    0x1700x177

    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]#
    【责任编辑:云霞 TEL:(010)68476606】
  • 相关阅读:
    基于VitralBox 的 OpenEuler系统 安装增强功能
    OpenEuler 操作系统 安装 银河麒麟GUI界面
    OpenEuler 操作系统的安装
    vscode 安装markdown插件 及 实用markdown语法
    无限技能下的密码系统愿景
    商用密码企业调研
    实验四 Python综合实践 ——20191331刘宇轩
    20191331 《Python程序设计》实验三报告
    9.29载入史册的一天
    人生的四天半
  • 原文地址:https://www.cnblogs.com/chulia20002001/p/1932772.html
Copyright © 2020-2023  润新知