预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共107页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第5章中断技术二。中断源与中断识别1.中断源:发出中断请求的外部设备或引起中断的内部原因称为中断源。外设请求的中断中断指令引起的中断程序差错引起的中断硬件故障引起的中断2.中断识别CPU寻找中断源的过程称为中断识别中断识别的目的:获得该中断源的服务程序的入口地址。中断识别的方法:向量中断或查询中断四。中断类型号、向量指针中断类型号:系统给每个中断源分配一个唯一的编号,称为中断类型号。中断向量指针:中断向量在存储器中的地址。以下是8088CPU计算机(如IBM-PC)中断向量、向量表、指针关系参看下图CPU执行INT21H指令,CPU内部电路产生一次中断请求,类型号为21H。CPU内部电路自动计算出中断向量(21H*4)CPU自动读内存(84H)字单元,读出数据送入(IP);CPU自动读内存(86H)字单元,读出数据送入(CS);CPU到(CS,IP)所指向的内存单元(中断服务程序起始地址)取指令并执行。五。中断向量的装入与修改(以8088/8086CPU为例)1.中断向量的装入方法一:用MOV指令例:假设中断类型号为60H,中断服务程序在内存的地址为2000:006D,写出把中断向量装入程序MovAX,006DH;用2条指令把中断向量的偏移地址部分装入向量表Mov[DI],AX方法二:用INT21H指令(DOS功能调用指令)例:假设中断类型号为60H,中断服务程序在内存的地址为2000:006D,写出把中断向量装入程序MOVAH,25H;设置INT21指令的第1个参数--DOS功能号MOVAL,60H;设置INT21指令的第2个参数--中断类型号MOVBX,2000H;设置INT21指令的第3个参数--中断向量段MovDS,BXMOVDX,2000H设置INT21指令的第4个参数--中断向量偏移INT21H;DOS功能调用思考:课本P82例3,修改中断向量的过程,你能理解吗?七。中断嵌套当CPU处理一个中断源,正在执行中断服务程序时,又遇到优先级更高的中断源中断请求。CPU暂停正在执行的中断程序,去处理这个级别更高的中断源请求,执行它的中断服务程序。待执行完毕,再返回被暂停的原来的中断服务程序。把这个过程称为中断嵌套。5.2IBM-PC中断系统(具体一款计算机的中断技术)一.外部中断(硬件中断)二.内部中断(软件中断)(3)为调试程序设置的中断三、硬件中断与软件中断的比较1.硬件中断的特点:是CPU外部事件而引起的中断,具有随机性和突发性在中断响应总线周期,CPU需要发出中断应答信号/INTA(NMI硬件中断没有)。中断类型号由中断控制器芯片8259提供(NMI硬件中断类型号由CPU固定设为2)是可以屏蔽的(NMI硬件中断除外)2.软件中断的特点是执行中断指令或普通指令执行出现某种故障而引起的中断响应周期,CPU没有INTA信号产生。中断类型号由中断指令给出或CPU固定设置是不可屏蔽的。四。软件中断的应用自学P89五、中断处理过程(以硬件中断为例)1.中断请求:(课本P85图5.3①)外设发中断请求。CPU在每条指令的最后一个时钟节拍,查看INT信号线。如果FLAG寄存器的IF标志为1(允许中断标志),则响应中断。(既CPU产生中断响应总线周期)。2.中断响应:(课本P85图5.3②③④⑤⑥⑦)共8拍,发2次INTA有效信号。第一次通知中断控制器8259,已经响应中断,请8259准备好中断类型号;第二次从8259中读出中断类型号。CPU自动将当前的old_flag,old_cs,old_ip寄存器压入堆栈。根据中断类型号,CPU自动生成中断向量指针,自动从中断向量表中取出中断向量,装入CS,IP寄存器,从而跳入中断服务程序。五、中断处理过程(以硬件中断为例)3.中断服务程序:(课本P85图5.3⑧)4.中断返回:(课本P85图5.3⑨⑩)在中断服务程序的最后,应该放一条IRET指令(中断返回指令)。该指令执行时会把堆栈的原来的CS\IP\FLAG内容弹回。六。中断响应周期CLK2.8086中断响应周期的说明(1)/INTA1的作用使8259将IRR(中断请求寄存器)中当前中断请求对应的位置清除使8259将ISR(正在服务寄存器)中当前中断请求对应的位置1。(2)/INTA2的作用硬件自动读出8259中断类型号如果8259工作在自动结束方式,硬件自动清除ISR中当前中断请求对应的位.说明:只要设置8259工作方式就能实现让8259清除该中断的ISR中对应的位。共有2中方式可以设定自动结束方式:这种方式下,8259接到/INTA2上什沿就清除对应的位。非自动结束方式:这种方式下,8259接到/INTA2不会清除对应的位,需要程序员在中断服务程序中写一条指令,CPU执行该指令,会向8259发一个中断结束命令(EOI命令)(3)/LO