第三章 中断控制 本章主要内容 1.中断的有关概念 中断的定义——由预先安排好的内部或外部事件触发引起 CPU 中止正在正常执行的程序,而转去执行另一段为触发事件而编写的程序,等为触发事件而编写的程序执行完后再返回到被打断处继续执行。 触发事件又称为中断请求。 受到内部或外部事件触发而转去执行的程序称为中断服务程序。 正常执行的程序被触发事件打断处的下一条指令的存放地址(即从中断服务程序返回的地址)称为断点。应注意的是:断点是存放指令的地址,对 8086 系统,指令是存储在存储器中的,存储器地址是用 段地址:偏移地址 的形式来表示的。 中断服务程序存放的首地址称为中断服务程序入口地址。中断服务程序的入口地址又称为中断向量。既然是存储器地址,就需用 4 个字节表示,两个字节(16 位)的段地址,两个字节(16 位)的偏移地址。 开中断,即允许中断,允许触发事件打断CPU 正在正常执行的程序;关中断,即禁止中断,虽有事件触发,但不能打断CPU 正在正常执行的程序。对 8086 系统,只有可屏蔽中断和单步中断能被允许或禁止,利用标志寄存器 FR(PSW )的IF 位和 TF 位置 1 或清 0 来开中断或关中断。 可用设置标志寄存器 IF 为 0 来禁止的中断称为可屏蔽中断。对于 8086 系统,可屏蔽中断指的是加在 INTR 引脚的中断。不能用设置标志寄存器 IF 为 0 来禁止的中断称为非屏蔽中断,对于 8086 系统,多数中断都是不能用 IF 为 0 来禁止的,但只有NMI 引脚的中断称为非屏蔽中断。 请求中断的来源称为中断源,它们是一些预先按排好的事件。中断优先级的概念有两层含义:一是指的是当多个中断源同时请求中断时,CPU 先执行为哪个中断而编写的中断服务程序,哪个中断源的优先级就高;二是指 CPU 正在执行某个中断源的中断服务程序时又收到另一个中断源的中断请求时,CPU 能否暂停正在执行的中断服务程序,而转去执行为另一个中断源而编写的中断服务程序,如果另一个中断源的优先级高,CPU 就暂停正在执行中断服务程序而转去执行为另一个中断源而编写的中断服务程序,否则,另一个中断源就不能打断正在执行的中断服务程序。 要求:掌握中断的各有关概念。 2.8086 系统的中断分类及优先级 1) 内部中断 由内部事件触发引起的中断,分为除法除以 0,溢出中断,断点中断和指令中断和单步中断。 2) 外部中断 由外部事件引脚触发引起的中断,可分非屏蔽中断...