关闭

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

标签: dosbasic磁盘linux存储system
2784人阅读 评论(0) 收藏 举报
分类:

(一)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功能调用


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:42273次
    • 积分:547
    • 等级:
    • 排名:千里之外
    • 原创:7篇
    • 转载:10篇
    • 译文:0篇
    • 评论:0条