计算机I/O端口地址是如何分配的,各种输入输出设备地址如何确定的呢?需要看哪方面的书?

找了好多资料没找到这方面的介绍,希望大家能帮忙。主要是不知看哪方面的,,最好是里还能介绍这些地址是如何分配,而且哪个地址哪位,都是啥功能,比如我想读写硬盘,哪个是数据端口,地址端口,控制端口。最好是详细的书,再比如我想读键盘的端口,在什么地址及方法,比如PCI声卡网卡,这些端口都是什么,最好是详细的书,最好在这里大至说一下,然后推荐一下这方面的书,谢谢。
微机原理和接口书看到这类介绍,但都太笼统,我需要更细至一些的,或是专门谈这方面的书,比如I/O端口管理,硬件设备管理,因为我想从操作系统的角度去看待管理,最近在看操作系统的书所以想了解这块,对内存管理,CPU管理都找到相关的了,可输入输出这一块都介绍的不详细,比如我新插个设备如何管理的,拨个设备又如何管理的,如何构建关于这些设备的数据结构,单纯的设备驱动好像也不是太恰当,我不能用太恰当词语来表达,希望你们理解

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范围。因此若要让一个字符显示在屏幕上,可以直接使用内存操作指令往这个内存区域执行写操作。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-01-03
对于微机,早已定死,dos时代就确定了,串口、并口、键盘、鼠标、声卡、显卡、硬盘、光驱、软驱都有自己的地址和中断。书店中找一下比较老的dos书籍,很快就懂了,简单,不难的。
二对于小型机、大型机、专用服务器等等,每个厂商、品牌都不同,需要区别对待,基本上只能看对应厂商的技术资料,绝大多数都是没有中文版的。
第2个回答  2012-06-05
这个我觉得微机原理与接口技术后面附加的端口地址还是很详细的~而且很多端口地址是用不到的~所以我觉得书本附带的端口地址就够了~
相似回答