任何程序的运行均离不开一定的硬件环境和软件环境。 基本硬件环境包括CPU、存储器、I/O设备(键盘、磁盘、打印机、显示卡等),关于CPU和存储器,已经作了一些了解。
从原理上讲,使用IN/OUT指令可以控制任何I/O设备。以打印机为例,使用IN指令可以读入打印机的状态(有/无纸、能否接收新的数据等)、使用OUT指令把数据送给打印机、给打印机发控制命令(移动打印头、某些打印针击打)。
一个简单的I/O设备使用要求,需要一系列IN/OUT等控制指令,可以把一些基本使用要求编写为子程序,供调用。
事实上,BIOS中,以中断处理程序的形式提供了微机中基本I/O设备的控制程序,称为"BIOS中断",应用程序可以用"INT n"指令调用这些程序。
程序运行的主要软件环境是操作系统。操作系统为程序运行提供基本的服务,如,程序的装入、结束,内存的分配,文件管理等。以DOS操作系统为例,它也以中断处理程序的形式提供这些服务,称为"DOS中断", 应用程序也用"INT n"指令调用这些服务。 MS_DOS的DOS中断是由IO.SYS、MSDOS.SYS两个文件提供的中断处理程序。(PC_DOS:IBMBIO.COM、IBMDOS.COM)。
PC系列机有256种中断类型,8086CPU使用其中5个(0号除数为0中断、1号单步中断、2号NMI中断、3号断点中断、4号溢出中断),80286及以上系统中,通过中断控制器8259使用的硬件中断为16个。其余中断类型为BIOS中断和DOS中断,它们称为"软件中断"。
类型号 | 中断处理程序功能 | 类型号 | 中断处理程序功能 |
0
| 除数为0中断 |
1
| 单步中断 |
2
| NMI中断 |
3
| 断点中断 |
4
| 溢出中断 |
5
| 打印屏幕 |
6
| 保留 |
7
| 保留 |
8
| 定时中断( 中断) |
9
| 键盘中断( 中断) |
A
| 保留( 中断) |
B
| 串行口COM2( 中断) |
C
| 串行口COM1( 中断) |
D
| 硬盘中断( 中断) |
E
| 软盘中断( 中断) |
F
| 打印机中断( 中断) |
10
| CRT显示驱动程序 |
11
| 设备检测 |
12
| 存储器容量检测 |
13
| 磁盘I/O驱动程序 |
14
| RS-232 I/O驱动程序 |
15
| 磁带机I/O处理 |
16
| 键盘I/O驱动程序 |
17
| 打印机驱动程序 |
18
| ROM BASIC |
19
| 系统引导 |
1A
| BIOS日期、时钟中断 |
1B
| BIOS提供的Ctrl_Break处理 |
1C
| 定时器时标(54.9ms) |
1D
| CRT初始化参数表 |
1E
| 磁盘参数 |
1F
| 图形字符集 |
20
| 程序结束 |
21
| DOS系统功能调用 |
22
| 结束地址 |
23
| DOS的Ctrl_Break处理 |
24
| 严重错误处理 |
25
| 磁盘顺序读 |
26
| 磁盘顺序写 |
27
| 程序结束且驻留(TSR) |
28~2E
| 为DOS保留 |
2F
| DOS内部使用 |
30~3F
| DOS保留 |
40~7F
| 未用 |
80~85
| BASIC保留 |
86~F0
| BASIC使用 |
F0~FF
| 未用 |
/
| / |
另外,设备制造商提供的设备控制程序(称为驱动程序Driver)可能替换BIOS中断和DOS中断。
当前,驱动程序的概念使用非常广泛,它泛指软件与硬件或其他软件的接口程序。