微机原理与接口技术 第9章

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第九章中断9.1基本概念复习CPU与外设信息交换的控制方式种类以查询方式输入为例当外设数据未准备好时,CPU需要不断查询外设是否准备好的状态,效率低读取状态信息数据准备好?从数据口读数据NY1.中断方式示意(以输入中断为例)③数据④中断请求⑤中断响应⑦数据断点现行程序中断服务子程序⑥⑧②现行程序输入设备输入接口①启动CPU⑨中断概念2.什么是中断?CPU暂停执行现行程序,转而处理随机事件,处理完毕后再返回被中断的程序,这一全过程称为中断。3.中断源能够引发CPU中断的信息源(1)外部中断源(硬件中断源)I/O设备如键盘、显示器、打印机数据通道如磁带、磁盘时钟如82540#,由此引发的中断故障源如掉电、存贮器奇偶校验错(2)内部中断源(软件中断源)执行INT软件中断指令如执行指令INT21HCPU指令执行产生的异常如被0除、单步执行中断概念选通信号4.具有中断请求功能的输入接口示意图输入设备锁存器(8)三态缓冲器(8)CPU数据线RDQ+5V中断请求触发器QD中断允许触发器数据线D0位地址译码器INTR地址总线IOWIOR控制口选中数据口选中中断概念状态标志寄存器5.中断系统为实现中断而采取的硬件,软件措施6.中断系统应具备的基本功能对于硬件中断,接口电路应具备‘屏蔽’和‘开放’的功能,这种功能由程序员通过软件去控制。能实现中断判优(中断排队),当有多个中断源提出请求时,应能优先响应高级别的中断源。中断概念能够实现中断嵌套,即高级别的中断源能够中断低级别的中断服务程序。响应中断后,能自动转入中断处理,处理完毕能自动返回断点。现行程序断点为B服务为A服务断点为A服务设“B”级别高于“A”中断概念9.280X86中断指令1.开中断指令STI功能:使F寄存器中I标志置1,CPU处于开中断状态。2.关中断指令CLI功能:使F寄存器中I标志置1,CPU处于关中断状态。3.软件中断指令INTnn为中断类型码,n为0~255之间有定义的无符号整数。功能:无条件转向n型中断服务子程序。INTn指令的执行过程—CPU响应软件中断的过程①F寄存器→栈(保存INTn之前的F状态)使F中的T标志置0——禁止单步操作I标志置0——CPU处于关中断状态②断口地址→栈先:断口基地址(CS)→栈,后:断口偏移地址(IP)→栈③CPU从4n~4n+3单元取出n型服务程序入口地址→IP:CS,从而转入n型中断服务程序。中断指令4.中断返回指令IRET功能:依次从栈顶弹出6个元素→IP,CS,F如果栈顶是INTn的断口地址,则执行IRET后,返回断点,否则不能。图示执行INTn栈顶示意图执行IRET示意图sp→断口偏移地址断口段基址FCSFIPsp→中断指令IRET是中断服务子程序的出口指令IRET和RET的区别IRET从栈顶弹出6个元素→IP,CS,F远程RET,从栈顶弹出4个元素→IP,CS近程RET,从栈顶弹出2个元素→IP9.3中断向量和中断向量表中断系统是为实现中断而采取的软、硬件措施中断指令、中断向量和中断向量表是实现中断的重要软件措施。1.什么是中断向量中断向量是实模式下,中断服务子程序的入口地址2.中断向量表:所有中断向量的集合3.中断向量表的设置CPU规定:在实模式下,中断向量表需设置在系统的RAM最低端的1K单元(0~3FFH)0H:4H:3FCH:0型中断向量1型中断向量255型中断向量…它由2部分组成:服务程序所在代码段的段基址2个字节服务程序入口的偏移地址2个字节中断向量4.中断向量表的表地址与中断类型的关系4n+0+2+3+1n型服务程序入口的偏移地址n型服务程序入口的段基址n型中断向量如:“21H”型中断向量:存放在84H~87H单元中问:9CH型中断向量存放在何处?解:∵9CH×4=1001110000=270H∴9CH型中断向量存于270H~273H单元中中断向量5.中断向量的引导作用YYXX21H型中断向量4×21H用户程序MOVAH,1INT21HMOVDL,AL……NEXT:F寄存器内容堆栈区NEXT的有效地址NEXT的段基址①XX:YY…21H型服务程序IRETIPCS②③IPCSF④IRET——CPU响应软件中断的过程中断向量6.中断向量表的初始化由BIOS设计的中断服务程序(如INT16H,INT10H…)其中断向量在加电时由BIOS负责写入中断向量表。由DOS设计的中断服务程序(如INT21H)其中断向量是在启动DOS时,由DOS负责写入中断向量表。用户程序开发的中断服务程序,由用户程序写入其中断向量。中断向量问题:用户如何写入中断向量?XX:YY…用户编写的n型中断服务程序IRETYYXX中断向量表4×n?方法一、用户自己编写程序填写中断向量CLIPUSHDSMOVAX,0000HMOVDS,AXMOVBX,4*nMOVAX,OFFSETSERVICEMOV[BX],AXMOVAX,SEGSERVICEMOV[BX+2],AXPOPDSSTI中断向量方法二、DOS设计2个子程序,专门用于中断向量的读出、写入[INT21H的35H子功能]功能:读出n型中断向量入口:AL=中断类型码出口:ES:BX=n型中断向量[INT21H的25H子功能]功能:写入n型中断向量入口:DS=中断服务程序所在代码段的段基址DX=中断服务程序入口的偏移地址中断向量例:把用户程序中以“TIMER”命名的中断服务子程序的入口地址→4×1CH~4×1CH+3单元数:OLD1CDD?代:…MOVAH,35HMOVAL,1CHINT21HMOVWORDPTROLD1C,BXMOVWORDPTROLD1C+2,ESPUSHDSMOVAX,CSMOVDS,AXMOVDX,OFFSETTIMERMOVAH,25HMOVAL,1CHINT21HPOPDS…中断向量7.关于中断向量表的说明在实模式下,系统RAM最低端的1K单元为中断向量表,但是并非每一个表项都是中断向量。BIOS利用某些表项做为“参数指针”,参数指针指向的是一群参数,而不是中断服务程序,因此称它们为“向量”是比较合适的。例如:1DH型向量,指向屏幕参数表。1EH型向量,指向软盘参数表。1FH型向量,指向图型字符表。41H型向量,指向第一台硬盘参数表。46H型向量,指向第二台硬盘参数表。用户程序不能改动这些向量,当然也不能执行以1DH,1EH,1FH,41H,46H为中断类型码的软中断指令,否则系统将会瘫痪。中断向量9.4系统中断的分类CPU中断硬件中断(外部中断)软件中断(内部中断)PC机256种中断可屏蔽中断非屏蔽中断BIOS中断DOS中断DOS专用中断DOS保留中断用户可用DOS中断用户可开发的中断CPU中断逻辑CPU中断软件中断(INTn指令)非屏蔽中断请求中断控制系统NMI可屏蔽中断请求INTR系统中断的分类一.CPU中断CPU中断是指:CPU执行某些操作而引发的中断,这类中断使用了0、1、3、4、6、7中断号。1.除法错中断——0型中断CPU执行DIV或IDIV指令,如果除数为0,或者商数超出寄存器的表示范围,CPU自动调用0型中断服务程序。系统中断的分类2.单步中断——1型中断3.断点中断——3型中断当标志寄存器的T标志为1时,CPU一条指令执行完毕,自动调用1型中断服务程序。但是,DOS为1型中断设计的服务程序只有一条IRET指令。CPU执行“INT3”指令后,调用3型中断服务程序,而DOS系统的3型中断服务程序也只有一条IRET指令。注意:单步和断点中断是因为DEBUG程序的需要而设计系统中断的分类4.溢出中断——4型中断对应的软件中断指令有两种汇编格式,功能稍有不同。①INTO②INT4当FLAG寄存器的溢出标志为1,在这种条件下,执行“INTO”指令,将会调用4型服务程序。否则,如果溢出标志为0,执行“INTO”指令是无效的。DOS为4型中断设计的服务程序也只有一条IRET指令系统中断的分类二.软件中断执行有定义的INTn指令而引发的中断,称为软件中断。在这里,之所以加了“有定义的”这一限制词,是因为并非所有的中断号都有与之配套的中断服务程序。软件中断使用05H,10H~FFH中的若干个中断号。软件中断又可分为BIOS中断、DOS中断。1.BIOS中断BIOS中断,占用了05H、10H~1FH中断号,用户程序执行相关的软中断指令可以调用相应的中断服务程序。INT05H屏幕打印;INT10H屏幕显示I/O;INT11H设备配置检测;系统中断的分类INT12H测试内存容量;INT13H磁盘I/O;INT14H串行通信I/O;INT15HBIOS扩展功能;INT16H键盘I/O;INT17H打印机I/O;INT18H启动PC机ROMBASIC(AT机)无;INT19H重新装入引导程序;INT1AH实时时钟管理。中断号1DH,1EH,1FH,41H,46H也被BIOS占用了。但是,与这些中断号对应的并不是中断服务程序。也就是说,不存在与这些中断号对应的软中断指令,用户程序如果执行INT1DH~INT1FH,INT41H,INT46H,必将引起系统瘫痪(参看中断向量表的说明)。系统中断的分类2.DOS中断DOS中断,又分为DOS专用中断,DOS保留中断,用户可调用的DOS中断以及保留给用户开发的中断。(1)DOS专用中断①22H型中断程序正常结束时,DOS将自动调用该中断返回父进程。②23H型中断程序非正常结束时(如:用户按下Ctrl_C,或者Ctrl_Break中途停止程序的运行),DOS调用该中断。③24H型中断程序运行发生严重错误时(例如:对软磁盘文件进行操作的时候,驱动器小门没有关闭,或进行打印操作而打印机没有连通),DOS自动调用此类中断,发出错误信息“Notready……Abort,Retry,Ignore?”,这些中断是DOS专用的,DOS在调用此类中断之前,还要做些准备工作。因此,用户程序不能直接调用这些中断。系统中断的分类④28H~3FH型中断也为DOS专用,Microsoft公司没有公开这类中断的功能。但是,一些醉心钻研DOS的专家们,仍然破译出一些有价值的信息。例如:INT33H为鼠标器调用。(2)用户可调用的DOS中断①20H型中断用户程序执行INT20H指令可结束程序的运行,返回DOS。但必须注意:在执行INT20H之前,必须保证用户程序CS寄存器的内容等于PSP段基址。因此在用户的COM文件中,可以直接使用INT20H返回DOS。INT20H与INT21H的0号功能调用,完成相同的操作。②21H型中断DOS系统的许多功能都集中在21H型中断服务程序中。用户程序把功能号写入AH寄存器,设置相应的入口参数,然后执行INT21H即可调用不同的功能。我们把执行INT21H指令所完成的功能,称为“DOS系统功能调用”。系统中断的分类③25H型中断此类中断在指定的驱动器上,按照扇区号读取信息。④26H型中断在指定的驱动器上,按照扇区号写入信息。INT25H,INT26H称为“绝对磁盘读写调用”。在此类调用中,DOS系统不使用文件控制块,也不使用文件号去管理磁盘文件,而是按照扇区号直接进行磁盘信息的读写。⑤27H型中断中止并驻留程序于内存之中。用户程序执行INT27H可以中止程序的运行,并且把欲驻留的程序段驻留在内存之中。系统中断的分类60H~66H是保留给用户使用的中断号。DOS没有为它们设计服务程序。启动DOS后,60H~66H型“中断向量”均为0值。正因为如此,如果你没有开发出60H~66H型中断服务程序,没有改写60H~66H型中断向量,千万不可调用此类中断,否则系统瘫痪。(3)用户可开发的DOS中断(4)DOS保留的中断DOS为了自身版本的升级和功能扩充,保留了若干个中断它们是:42H~45H,4BH~5FH,68H~6FH,72H~74H,77H~7FH。以上关于软件中断的概念,在设计应用程序时是十分有用的,实际上,如果不涉及BIOS中断,不涉及DOS中断,用户将无法设计应用程序。系统中断的分类9.58259中断控制器外部中断是由

1 / 103
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功