计算机的中断系统(包含DOS时代和Windows/Linux时代)

(一)DOS时代


   任何程序的运行均离不开一定的硬件环境软件环境。 基本硬件环境包括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.SYSMSDOS.SYS两个文件提供的中断处理程序。(PC_DOS:IBMBIO.COM、IBMDOS.COM)。 


  PC系列机有256种中断类型,8086CPU使用其中5个(0号除数为0中断、1号单步中断、2号NMI中断、3号断点中断、4号溢出中断),80286及以上系统中,通过中断控制器8259使用的硬件中断为16个。其余中断类型为BIOS中断DOS中断,它们称为"软件中断"。BIOS中断和DOS中断的使用请参考

http://course.cug.edu.cn/21cn/%CE%A2%D0%CD%BC%C6%CB%E3%BB%FA%BC%BC%CA%F5/content/masm/chapter4/4-4/4-4-1.htm


IBM PC/XT 机中的256级中断安排 
类型号中断处理程序功能类型号中断处理程序功能
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中断。 当前,驱动程序的概念使用非常广泛,它泛指软件与硬件或其他软件的接口程序


(二)windows/Linux时代


    到了Windows/Linux时代,80386及以上的CPU保留了0--31号的异常(中断)号。而通过两个中断控制器8259A使用的硬件中断为16个,Linux把它们的中断号设为32--47(即0x20--0x2f)。Linux启动后不再使用BIOS中断,因此BIOS中断号被覆盖掉了。并且Linux把system call的中断号设置为int128(0x80),可以看出,这个系统调用相当于DOS时代的INT 21H系统调用。


附: DOS时代的INT 13H BIOS功能调用


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值