【第十四章】端口

在PC机系统中,和CPU通过总线相连的芯片除了各种存储器外,还有以下三种芯片:

  1. 各种接口卡(比如,网卡、显卡)上的接口芯片,它们控制接口卡进行工作
  2. 主板上的接口芯片,CPU通过它们对部分外设进行访问
  3. 其他芯片,用来存储相关的系统信息,或进行相关的输入输出处理

在这些芯片中,都有一组可以由CPU读写的寄存器。这些寄存器在物理上可能处于不同的芯片中,但是它们在以下两点上相同:

  1. 都和CPU的总线相连,当然这种连接是通过它们所在的芯片进行的
  2. CPU对它们进行读或写的时候都通过控制线向它们所在的芯片发出端口读写命令

CPU可以直接读写以下三个地方的数据:

  1. CPU内部的寄存器
  2. 内存单元
  3. 端口

14.1 端口的读写

CPU访问端口的过程:

in al,60h ;从60h号端口读入一个字节
  1. CPu通过地址总线将地址信息60h发出
  2. CPU通过控制线发出端口读命令,选中端口所在的芯片,并通知它,将要从中读取数据
  3. 端口所在的芯片将60h端口中的数据通过数据线送入CPU

注意:在in和out指令中,只能使用ax或al来存放从端口中读入的数据或要发送到端口中的数据。访问8位端口时用al,访问16位端口时用ax