中断技术之中断的定义,中断服务程序的设计方法,中断处理的过程以及中断向量表的建立
程序员文章站
2024-02-14 22:55:28
...
一,中断的定义
在CPU执行程序的过程中,出现了某种紧急或异常的事件(中断请求),CPU需要暂时停止正在执行的程序,转去处理该事件(执行终端服务程序),并在处理完毕后,返回断点继续执行被暂停的程序,这一过程,称为中断。
二 ,中断处理的过程主要有五步
1.中断请求
2.中断响应
3.保护断点
4.中断处理
5.中断返回
三,8086/8088CPU可以处理256种不同类型的终端
四,中断服务程序的设计
1.用户在设计中断服务程序时要预先确定一个中断类型号,不论是硬件中断还是软件中断,都只能在系统预留给用户的类型号中选择,
2.确定中断类型号之后还要把中断服务程序入口地址置入中断向量表,以确保在中断响应时CPU能自动转入该类型号相对应的中断服务程序。
3.中断向量表的建立
设用户定义的中断类型号为60H
1)DOS系统功能调用法
功能号:(AH)=25H
入口参数:
(AL)=中断类型号
(DS)=中断服务程序的入口地址的段地址
(DX)=中断服务程序的入口地址的段地址
下面程序段完成中断类型号为 60H的中断服务程序的入口地址的置入
PUSH DS //保护DS
MOV DX, OFFSET INT _60 //取中断服务程序INT_60的偏移地址
MOV AX, SEG INT _60 //取中断服务程序INT_60的段地址
MOV DS, AX
MOV AH, 25H //送功能号
MOV AL, 60H //送中断类型号
INT 21H //DOS功能调用
POP DS //恢复DS
2)直接装入法
用传送指令直接将中断服务程序入口地址置入中断向量表。
设中断类型号为60H,此类型号对应的中断服务程序入口地址应存放在中断向量表00180H开始的四个连续存储单元中。
采用直接装入的程序段如下:
XOR AX, AX //清零
MOV DS, AX
MOV AX, OFFSET INT_60
MOV DS: [0180H], AX // 置中断服务程序INT_60的偏移地址
MOV AX, SEG INT_60
MOV DS: [0180H+2], AX //置中断服务程序INT_60的段地址
接下来会对可编程中断控制器8259 A进行理解,请大家拭目以待!
学习是对体系结构的一种建立,今天不会的不要慌,当体系结构达到一个水准之后,或许明天就会了呢?
目之所及,皆是回忆!
心之所想,皆是过往!
眼之所看,皆是遗憾!
下一篇: js 对url 进行解码,编码