[计算机硬件技术基础][机械工业出版社]第8章_中断技术习题答案

上传人:无*** 文档编号:59462393 上传时间:2022-03-03 格式:DOCX 页数:8 大小:62.46KB
返回 下载 相关 举报
[计算机硬件技术基础][机械工业出版社]第8章_中断技术习题答案_第1页
第1页 / 共8页
[计算机硬件技术基础][机械工业出版社]第8章_中断技术习题答案_第2页
第2页 / 共8页
[计算机硬件技术基础][机械工业出版社]第8章_中断技术习题答案_第3页
第3页 / 共8页
点击查看更多>>
资源描述
第八章习题参考答案8.1 什么是中断? 采用中断技术有哪些好处?答:中断是指由CPU内外部事件引起或由程序的预先安排,使CPU中断正在运行的正常程序(主程序),而转到为该内部外部事件或预先安排的事件服务程序,待服务完毕,再返回被暂时中断的正常程序处继续执行正常程序的过程。采用中断技术,可以使计算机方便地实现如下一些操作: (1)分时操作。有了中断系统,CPU可以命令多个外部设备同时工作,CPU分时控制这些外设,大大提高了CPU的吞吐率。 (2)实现实时处理。当计算机用于实时控制,系统要求计算机为它服务的时间是随机的,而中断系统中这种请求-响应模式正好迎合了实时系统的需求。 (3)故障处理。计算机在运行过程中,往往会出现一些故障,如电源掉电、存储出错、运算溢出等。有了中断系统,当出现上述情况时,CPU可以随时转去执行故障处理程序,自行处理故障而不必停机。 随着微型计算机的发展,中断系统不断增加新的功能,中断系统甚至可以实现计算机系统中软硬件资源的自动管理。8.2 什么叫中断系统?它具备哪些功能?答:把能够实现中断全部功能的软件、硬件的总称称为中断系统。不同计算机的中断系统,其具体实现可能不尽一样,但中断系统的基本功能是相同的。中断系统的基本功能如下:1能实现中断响应、中断处理(服务)、中断返回和中断屏蔽。这是中断系统最基本的功能。2能实现中断优先级排队(管理)。即当有多个中断源同时申请中断时,CPU如何能够优先响应最紧急的中断申请。3能实现中断嵌套。即当CPU正在为优先级较低的中断源服务时,具有较高优先级的中断源提出中断申请,此时中断系统应当允许较高优先级的中断源中断较低优先级的中断源,待较高优先级的中断处理完成后,再接着处理较低优先级的中断,这种中断服务程序再被中断的过程称为中断嵌套。 8.3 何谓非屏蔽中断和可屏蔽中断?答:非屏蔽中断是指用户不能用软件屏蔽的中断。它是通过8086的NMI引脚进入。非屏蔽中断不受中断允许标志IF的影响,当NMI线上一旦有请求时,CPU便在执行完当前指令后,立即予以响应。所以,这种中断通常用来处理系统的紧急事件和重大故障,如系统的掉电处理、内存或I/O总线的奇偶错误等。可屏蔽中断是指用户可以用指令禁止和允许的中断。它是来自CPU的INTR端的中断。当CPU收到可屏蔽中断请求信号时,是否予以响应取决于中断允许标志IF的状态。若IF=1,则CPU在执行完当前指令后,响应中断请求;若IF=0,则禁止可屏蔽中断。可屏蔽中断通常用于各种外部设备的中断。微型计算机配置的外部设备一般有硬盘、软盘、键盘、显示器和打印机等。这些外部设备通过8259A可编程中断控制器与CPU相连,8259A接收来自外设的中断请求,由8259A向CPU发出中断请求。8.4 CPU在什么情况下才响应中断(可屏蔽)? 答:一个可屏蔽中断若想得到CPU的响应,必须同时满足以下所有条件:首先,CPU应收到一个可靠的中断请求信号,且该中断请求信号应一直保持到它被响应为止。其次,在中断请求的同时,没有更高级的请求信号发生。即这个中断请求应该是当前申请中断的、且没有被屏蔽的、优先级最高的中断源。第三,CPU内部应处在开中断(允许中断)状态。对8086CPU,应设置IF=1。第四,CPU至少要在当前指令执行完成时才可能响应中断。事实上,CPU只在特定的时刻(当前指令周期最后一个总线周期的最后一个时钟周期)才采样有无中断申请。第五,如果遇到CPU正在执行中断返回指令(IRET),或CPU正在对中断资源进行操作(如执行STI指令),则要在现行指令执行完后接着再执行一条其他指令,此后才能响应新的中断。这么做的目的是为了隔离两个中断。8.5 什么叫中断优先权(级)?有哪些解决中断优先权(级)的办法? 答:大多数的处理机系统都是多中断源单申请线的系统,即多个中断源共用同一条中断申请线向CPU申请中断。因此首先要解决系统中有两个或两个以上中断源同时申请中断时CPU优先响应哪个中断源的中断申请问题,即让哪个中断源的中断申请优先通过唯一的中断申请线向CPU申请中断。为此,提出了中断优先级的概念。CPU总是首先响应当前申请中断的、最高优先权的请求。软件查询中断源及优先级排队方法。该方法的主要思想是:多个中断源的中断申请通过一个“或”逻辑后由同一引脚向CPU申请中断,同时在中断接口电路中设置一个中断请求锁存器,以保存各个中断源的中断申请。CPU中断响应,在关闭中断、保护断点和标志寄存器内容后,转入系统唯一的、为所有中断源所共用的中断服务程序入口执行中断服务程序,在中断服务程序中用软件查询的办法查找中断源,从而将程序转向相应的中断服务程序。显然,按照先查到的先服务的思想,软件查询的顺序就是中断优先级的顺序。实现这种软件查询中断源及优先级排队方法所需的硬件接口逻辑非常简单,改变各中断源的优先级次序也非常方便,但缺点是软件查询所需的时间较长。因此这种方法主要用于系统规模较小、对响应时间要求不太高的场合。链式优先权排队逻辑。多个中断源的中断申请通过一个“或”逻辑后由同一引脚向CPU申请中断,同时设置中断请求触发器以保存各个中断源的中断申请。各中断源还需准备一个唯一标识该中断源的的标识码中断矢量,已备CPU在响应中断时根据此标识码来判断中断的来源以及将要转入的中断服务程序入口。来自CPU的中断响应信号通过多个与门逐次向后传送,形成一个传送信号的链条,称为菊花链。每个中断源的中断优先级由它们在链条中的位置来决定。处于链首的中断源具有最高的优先级,链尾中断源的优先级最低。在当前申请中断的中断源中,只有收到有效信号的中断源,才有资格打开三态缓冲器向数据总线释放其中断矢量。处在链条前端的中断源,可以中断处于链条后端正在进行服务的中断源。链式优先权排队逻辑电路比较简单,中断响应速度快(只取决于门电路的延迟时间),但随着中断源个数的增加链条的长度也随之增加,中断源个数过多时也影响中断响应速度并且电路也显庞大,此外,调整中断源的优先级次序也比较麻烦。编码器和比较器优先级排队逻辑。具有中断请求寄存、中断屏蔽、中断嵌套、自动对中断源进行编码并输出中断矢量等功能。编码器和比较器优先级排队逻辑功能齐全、中断响应速度较快,但硬件比较复杂。8.6 中断处理过程一般包括哪些步骤?中断处理过程主要包括中断申请、中断响应、中断源识别、中断服务和中断返回等几个阶段。图8-3示出了中断处理的一般过程。8.7 什么是中断类型号?简述其作用。答:中断类型号(码)是系统为每个中断源分配的、唯一标识该中断源的编码。当一个中断被CPU所响应时,中断逻辑应将该中断的中断类型码(中断向量)自动送给CPU,CPU根据该中断类型号根据一定方法找到相应的该中断源的中断服务程序的入口地址,并将程序转向中断服务程序。8.8 什么是中断响应周期?简述在中断响应周期中CPU和8259A一般需要完成的工作。答:CPU只有在响应外部可屏蔽中断时,才执行2个连续的中断响应周期,其目的是:第1个中断响应周期,外部中断逻辑准备中断类型码,此时CPU使数据总线AD0-AD7浮空,第2个响应周期,CPU通过数据总线AD0-AD7接收中断类型号,得到中断向量表地址。8.9 8259A的主要功能是什么?内部主要的有哪些寄存器?分别完成什么功能?答:Intel8259A是一片可编程中断控制器集成电路芯片。可编程是指用户可以用软件编程的办法来设定芯片的工作环境和工作方式,使之芯片适应于各种应用需求。一片8259A可以管理8级中断,多片8259A级联可使中断最大扩展至64级,每一级中断都可以屏蔽或允许,8259A在中断响应周期,可提供相应的中断类型号,从而迅速转至中断服务程序,8259A设计有多种工作方式,可以通过编程来选择,以适应不同的应用场合。内部寄存器:中断清求寄存器IRRIRR(Interrupt Request Register)是与外部接口的中断请求线相连的寄存器,请求中断处理的外部中断源通过IR0-IR7向8259A申请中断,并把中断请求信号锁存在中断请求寄存器中。中断屏蔽寄存器IMRIMR(Interrupt Mask Register)是一个8位寄存器,用来设置中断请求的屏蔽信息。当IMR中第i位被屏蔽时(即IMRi=1),禁止IRi发出的中断请求信号。中断服务寄存器ISR(Interrupt Service Register)用于存放当前正在进行处理的中断源。ISR的置位是在中断响应周期,由优先权电路(PR)根据IRR中各申请中断位的优先级别和IMR中屏蔽字的状态,选取允许中断的最高优先级请求位,选通到ISR中。当中断处理完毕,ISR的复位由中断结束方式决定。初始化命令字(ICW1-ICW4)寄存器和操作命令字OCW1-OCW3寄存器。8.10 简述8086CPU的中断结构及中断处理过程。答:8086具有强有力的中断系统,可以处理256种不同的中断。如果将这些中断进行分类,则可以分为两大类:外部中断和内部中断。外部中断是由外部硬件的请求产生的中断,所以又称为硬件中断。内部中断是由指令的执行或者软件对标志寄存器中某个标志的设置产生的中断,所以又称为软件中断。8086CPU响应中断的处理过程如图8-25所示。从图中可以看出,对于类别不同的中断,CPU的响应次序是不同的。CPU首先响应内部中断,其次是非屏蔽中断和可屏蔽中断,最后才响应单步中断。CPU只有在响应外部可屏蔽中断时,才执行2个连续的中断响应周期,其目的是:第1个中断响应周期,外部中断逻辑准备中断类型码,此时使数据总线AD0-AD7浮空,第2个响应周期,CPU通过数据总线AD0-AD7接收中断类型号,得到中断向量表地址。对于其他类别的中断,由于其类型号是固定的或由指令的操作数指定,故不经过这一步骤。以下步骤和操作是各类中断共有的:1执行个总线写周期,将标志寄存器的内容压入堆栈。2保存单步标志。将标志寄存器中IF标志和TF标志置0,从而禁止在中断响应过程中其他可屏蔽中断进入,禁止单步中断。3执行2个总线写周期。在这2个写周期内,分别将CS和IP的内容压入堆栈。4执行一个总线读周期。在这个周期中,从向量地址的前两个字节中读取中断处理程序入口地址的偏移量送IP寄存器。5执行一个总线读周期。在这个周期中,从向量地址的后两个字节中读中断处理程序段基址送CS寄存器。6以CS:IP的内容所决定的地址为入口地址,转向中断服务程序。8.11 8086的中断源分哪几类?其优先顺序如何?答:8086具有强有力的中断系统,可以处理256种不同的中断。如果将这些中断进行分类,则可以分为两大类:外部中断和内部中断。外部中断是由外部硬件的请求产生的中断,所以又称为硬件中断。内部中断是由指令的执行或者软件对标志寄存器中某个标志的设置产生的中断,所以又称为软件中断。各类中断的优先级别:内部中断的优先级别最高(单步中断除外),其次是非屏蔽中断(NMI),单步中断的优先级别最低。8.12 中断人口地址表的功能是什么?已知中断类型码分别为84H和0FAH,它们的中断人口在中断入口地址表的什么位置上?CPU响应任何类型的中断,都将获得一个唯一标识该中断源的中断类型码(中断向量),CPU将根据该类型码找到相应的中断服务程序的入口地址,转向中断服务程序。我们将中断类型码和中断服务程序入口地址的对应关系称为中断向量表。8086CPU中断向量表的组织方式是:在内存的最前端为256种类型的中断源建立中断向量表,依次存放256个中断源中断服务程序的入口地址。每个中断服务程序的入口地址占4个字节,其中2个字节为其段基地址,另外2个字节为其段内偏移地址。显然,该中断向量表占据内存前端00000H-003FFH共1KB的地址空间,如图8-23所示。值得关注的是,存储类型i中断源中断服务程序入口地址的双字地址正好是该类型号i乘以4,正是这种对应关系,才使得CPU可以根据中断类型号得到中断服务程序入口地址,从而转入中断服务程序执行中断处理。8.13 某一8086CPU系统中,采用一个8259A进行中断管理。设定8259A工作在普通全嵌套方式发送EOI命令结束中断,采用边沿触发方式请求中断,IR0对应的中断向量号为90H。另外,8259A在系统中的I/O地址是0FFDCH(A0=0)和0FFDEH(Ao=1)。请编写8259A的初始化程序段。答:MOV AL , 13H MOV DX , 0FFDCH OUT DX , AL INC DX MOV AL , 90H OUT DX , AL MOV AL , 01H OUT DX , AL 8.14 下段程序读出的是8259A的哪个寄存器?MOV AL,0BHOUT 20H,ALNOPIN AL,20H 答:读出的是ISR的内容。8.15 若在一个系统中有5个中断源,它们的优先排序为:1,2,3,4,5。它们的中断服务程序人口地址分别为LOOP1、LOOP2、LOOP3、LOOP4、LOOP5。试编写一中断服务程序,当有中断请求CPU响应时,能用软件查询办法转到优先权最高的中断源。答:5个中断源共用一个统一的中断入口,进入中断服务程序后,先保护现场,查询中断状态,并按1,2,3,4,5的顺序依次分别查询中断,按先查到先服务,服务完成后,恢复现场,开中断,返回。程序略8.16 某系统中有5个中断源,它们从中断控制器8259A的IR3-IR7中以脉冲方式引进系统,它们的中断类型码分别为4BH,4CH,4DH,4EH和4FH,中断人口分别为3000:3500H,4000:4080H,5000:4505H,6000:5540H和7000:6000H。允许它们以完全嵌套方式工作,请编写相应的初始化程序,使CPU响应任何一级中断时,能正确地进入各自中断服务程序入口。答:CLI ;关中断CLD ;方向标置DF=0,串操作时,地址指针增量修改MOV AX,0 MOV ES,AX ;给ES赋值0,指向0000H段。MOV DI,4*4BH ;DI指向存储4BH号中断服务程序入口地址的双字地址MOV AX,3500H ;中断服务程序偏移值送AXSTOSW ;AX送ES:DIDI+1中,DI+2,存入偏移地址MOV AX,3000H ;中断服务程序的段基址送AxSTOSW ;AX送ES:DIDI+1,DI+2,存入段基地址MOV DI,4*4CH ;DI指向存储4CH号中断服务程序入口地址的双字地址MOV AX,4080H ;中断服务程序偏移值送AXSTOSW ;AX送ES:DIDI+1中,DI+2,存入偏移地址MOV AX,4000H ;中断服务程序的段基址送AxSTOSW ;AX送ES:DIDI+1,DI+2,存入段基地址MOV DI,4*4DH ;DI指向存储4DH号中断服务程序入口地址的双字地址MOV AX,4505H ;中断服务程序偏移值送AXSTOSW ;AX送ES:DIDI+1中,DI+2,存入偏移地址MOV AX,5000H ;中断服务程序的段基址送AxSTOSW ;AX送ES:DIDI+1,DI+2,存入段基地址MOV DI,4*4EH ;DI指向存储4EH号中断服务程序入口地址的双字地址MOV AX,5540H ;中断服务程序偏移值送AXSTOSW ;AX送ES:DIDI+1中,DI+2,存入偏移地址MOV AX,6000H ;中断服务程序的段基址送AxSTOSW ;AX送ES:DIDI+1,DI+2,存入段基地址MOV DI,4*4FH ;DI指向存储4FH号中断服务程序入口地址的双字地址MOV AX,6000H ;中断服务程序偏移值送AXSTOSW ;AX送ES:DIDI+1中,DI+2,存入偏移地址MOV AX,7000H ;中断服务程序的段基址送AxSTOSW ;AX送ES:DIDI+1,DI+2,存入段基地址STI ;开中断8.17 试编写出只有一片8259A的8086系统中8259A的初始化程序。8259A的地址为02C0H和02ClH,要求:(1)中断请求采用电平触发。(2)IRQ请求的中断类型是16。(3)采用缓冲器方式。(4)采用普通的EOI命令。答:与8.13类似,略8.18 简述保护模式下的中断调用过程。答:当CPU响应外部中断请求或执行某条指令产生异常时,根据中断或异常的类型号n,从中断描述符表IDT中找到相应的中断门,由中断描述符中的段选择符指向全局描述符表GDT或局部描述符表LDT中的目标段描述符,此目标段描述符内的段基址指向中断服务程序代码段的32位基地址,由该基地址与中断描述符中的偏移量之和形成中断服务程序的入口。
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!