
8086CPU的中断系统具有256个中断,每个中断用一个唯一的中断向量号标识。向量号也称为矢量号或类型号,它用一个字节表示:0 ~ 255,对应256个中断。8086的中断可以分成外部中断和内部中断两类。
(1)外部中断
外部中断是来自8086CPU之外的原因引起的程序中断。它又分成两种情况:
· 可屏蔽中断——外部的这个中断请求可以在CPU的内部被屏蔽掉,即CPU可以控制它是否引起程序中断。标志寄存器中的中断允许标志IF就是用于控制可屏蔽中断的。
· 非屏蔽中断——外部的这个中断请求不能在CPU的内部被屏蔽,CPU必须执行它的处理程序。8086为非屏蔽中断分配了中断向量号02。
(2)内部中断
内部中断是由于8086CPU内部执行程序引起的程序中断。它又分成多种情况:
· 除法错中断——在执行除法指令时,若除数为0或商超过了寄存器所能表达的范围,则产生除法错中断。8086为它分配的向量号为0。
· 指令中断——执行中断调用指令INT n就产生指令中断,也称为软件中断,它的向量号就是n。
INT n指令为2字节指令(机器码为11001101 —n—,第2个字节就是中断向量号n),但向量号为3的指令中断(INT 3)是1字节指令(11001100),较特殊,常用做程序调试的断点中断。
调试程序DEBUG中的G命令就是利用断点中断(3号中断)中止被调试程序的。使用DEBUG调试程序时,如果在程序段最后加上一条INT 3指令,就可以停止程序运行,而不必设置断点了。
· 溢出中断——在执行溢出中断指令INTO时,若溢出标志OF为1,则产生溢出中断。它的向量号为4。
· 单步中断——若单步标志TF为1,则在每条指令执行结束后都产生单步中断。它的向量号为1。
调试程序DEBUG中的T命令就利用了单步中断。
中断是指由于某种事件的发生(硬件或者软件的),计算机暂停执行当前的程序,转而执行另一程序,以处理发生的事件,处理完毕后又返回原程序继续作业的过程。中断是处理器一种工作状态的描述。
我们把引起中断的原因,或者能够发出中断请求信号的来源统称为中断源。
一般来说,外部硬件中断主要有以下几种:
一、I/O设备:如显示器、键盘、打印机等。
二、数据通道:软盘、硬盘、光盘等。
三、实时时钟:如外部的定时电路等。
四、用户故障源:如掉电、奇偶校验错误等。
产生于CPU内部的软件中断源有几种:
一、由CPU得运行结果产生:如除数为0、结果溢出、单步执行等。
二、执行中断指令INT:INT3
三、非法 *** 作或指令引起异常处理。
通常中断源有以下几种:
(1)外部设备请求中断。一般的外部设备(如键盘、打印机和A / D转换器等)在完成自身的 *** 作后,向CPU发出中断请求,要求CPU为他服务。 由计算机硬件异常或故障引起的中断,也称为内部异常中断。
(2)故障强迫中断。计算机在一些关键部位都设有故障自动检测装置。如运算溢出、存储器读出出错、外部设备故障、电源掉电以及其他报警信号等,这些装置的报警信号都能使CPU中断,进行相应的中断处理。
(3)实时时钟请求中断。在控制中遇到定时检测和控制,为此常采用一个外部时钟电路(可编程)控制其时间间隔。需要定时时,CPU发出命令使时钟电路开始工作,一旦到达规定时间,时钟电路发出中断请求,由CPU转去完成检测和控制工作。
(4)数据通道中断。数据通道中断也称直接存储器存取(DMA) *** 作中断,如磁盘、磁带机或CRT等直接与存储器交换数据所要求的中断。
(5)程序自愿中断。CPU执行了特殊指令(自陷指令)或由硬件电路引起的中断是程序自愿中断,是指当用户调试程序时,程序自愿中断检查中间结果或寻找错误所在而采用的检查手段,如断点中断和单步中断等。
808础088系统的中断源分为外部中断和内部中断两大类。外部中断又分为可屏蔽中断INTR和非屏蔽中断NMI:而内部中断都是非屏蔽中断,包括单步中断、除法出错中断、溢出中断和指令中断。
以上就是关于按照中断产生的方法,8086中断分为几大类,各包括哪些中断源全部的内容,包括:按照中断产生的方法,8086中断分为几大类,各包括哪些中断源、3、什么是中断源8086的中断源分哪两大类常见中断源有那些、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)