BIOS入门之我见-I/O

I/O,即输入输出端口,一般设备都会有专有的I/O地址,用来处理自己的输入输出信息,比如串口1一般用的是3F8h-3FFh,在X86架构下,I/O设备种类较多,因此本节主要介绍一下X86架构下的I/O空间, ISA I/O, 以及Supper I/O, CMOS等IO 设备的访问方式以及实现方法。

1.I/O空间

  外设中的寄存器被称为 I/O端口 ,外设中的内存被称为 I/O内存 。二者合起来统称为 I/O空间
                   
     图1 I/O空间

1.1 I/O端口及寻址方式

     备驱动程序要直接访问外设或其接口卡上的物理电路,这部分通常都是以寄存器的形式出现。外设寄存器称为I/O端口,通常包括:控制寄存器、状态寄存器和数据寄存器三大类。
根据访问外设寄存器的不同方式,可以把 CPU分成两大类。
     一类CPU(如M68K,Power PC,ARM,Unicore等)把这些寄存器看作内存的一部分,寄存器参与内存统一编址,访问寄存器就通过访问一般的内存指令进行,所以,这种CPU没有专门用于设备I/O的指令(可以以此判定体系为哪种)。这就是所谓的“I/O内存”方式。即统一编址。
  另一类CPU(如X86)将外设的寄存器看成一个独立的地址空间,所以访问内存的指令不能用来访问这些寄存器,而要为对外设寄存器的读/写设置专用指令,如IN和OUT指令。这就是所谓的“I/O端口”方式 。即独立遍址。 CPU是i386架构的情况在i386系列的处理中,内存和外部IO是独立编址,也是独立寻址的。MEM的内存空间是32位可以寻址到4G,IO空间是16位可以寻址到64K。 本文主要聚焦在这类遍址方式上。X86架构下,对应的专用指令 IN, OUT。在C语言中,封装成inp,inpw,inpd, 和outp,outpw,outpd函数。

1.2 I/O内存

  随着计算机技术的发展,单纯的“I/O端口”方式无法满足实际需要了,因为这种方式只能对外设中
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值