一,中断的定义 在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进行理解,请大家拭目以待! 学习是对体系结构的一种建立,今天不会的不要慌,当体系结构达到一个水准之后,或许明天就会了呢? 目之所及,皆是回忆! 心之所想,皆是过往! 眼之所看,皆是遗憾!