当微机加电时,由POST(Power-On Self-Test)来测试通用异步收发器UART的4个COM端口是否存在。如果微机系统设置了COM端口,则设置的每个COM端口的I/O地址就写到BIOS数据区的0040:000 ~ 0040:0007字节,每个COM地址占用2个字节,比如0040:0000和0040:0001保存的是COM0的I/O端口基地址,0040:0002和0040:0003保存COM1的I/O端口基地址等。如果系统没有连接串行端口,BIOS数据区的这几个单元内容就成为0。我们可以用DEBUG查看UART的端口地址。
  C>DEBUG
  -d 0040:0000 L08
  0040:0000 F8 03 F8 02 00 00 00 00

  上例查看的结果表明系统有两个COM端口,COM0的端口基地址为03F8H,COM1的端口基地址为02F8H。
  保存在BIOS数据区的COM端口地址之所以称为基地址,这是因为每个COM端口都包括一组8位的寄存器,程序员可以通过这些寄存器来进行编程,以控制数据按设定的格式发送或接收。BIOS数据区中保存的只是每个COM端口的第一个寄存器的I/O地址,其它寄存器的地址按递增的顺序来排列。比如对于UART的COM1来说,第一个寄存器的I/O地址为3F8H,第二个寄存器的I/O地址为3F9H,如此等等。