南邮微机原理课件第9章.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《南邮微机原理课件第9章.ppt》由会员分享,可在线阅读,更多相关《南邮微机原理课件第9章.ppt(132页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第九章第九章中中断断.1基本概念基本概念复习查询方式输入复习查询方式输入当外设数据未准备好时,当外设数据未准备好时,要不断查询,要不断查询,CPU效率低效率低读取状态信息读取状态信息数据准备好?数据准备好?从数据口读数据从数据口读数据NY1.中断方式示意中断方式示意(以输入中断为例以输入中断为例)数据数据中断请求中断请求中断响应中断响应数据数据断点断点现现行行程程序序中中断断服服务务子子程程序序现现行行程程序序输输入入设设备备输输入入接接口口启动启动CPU2.什么是中断什么是中断?CPU暂停执行现行程序暂停执行现行程序,转而处理随机事件转而处理随机事件,处理完处理完毕后再返回被中断的程序毕后再
2、返回被中断的程序,这一全过程称为中断。这一全过程称为中断。3.中断源中断源能够引发能够引发CPU中断的信息源中断的信息源(1)外部中断源(硬件中断源)外部中断源(硬件中断源)。I/O设备设备如键盘、显示器、打印机如键盘、显示器、打印机。数据通道。数据通道如磁带、磁盘如磁带、磁盘。时钟。时钟如如82540#,由此引发的中断由此引发的中断。故障源。故障源如掉电、存贮器奇偶校验错如掉电、存贮器奇偶校验错(2)内部中断源(软件中断源)内部中断源(软件中断源)。执行。执行INT软件中断指令软件中断指令如执行指令如执行指令INT21H。CPU指令执行产生的异常指令执行产生的异常如被如被0除、单步执行除、单
3、步执行4.中断系统中断系统为实现中断而采取的硬件,软件措施为实现中断而采取的硬件,软件措施5.中断系统应具备的基本功能中断系统应具备的基本功能对于硬件中断对于硬件中断,接口电路中应具备接口电路中应具备屏蔽屏蔽和和开开放放的功能的功能,这种功能由程序员通过软件去控制。这种功能由程序员通过软件去控制。能实现中断判优(中断排队),能实现中断判优(中断排队),当有多个中断源提出当有多个中断源提出请求时请求时,应能优先响应高级别的中断源。应能优先响应高级别的中断源。能够实现中断嵌套能够实现中断嵌套,即高级别的中断源能够中断低级即高级别的中断源能够中断低级别的中断服务程序。别的中断服务程序。响应中断后,能
4、自动转入中断处理,处理完毕能自动返回断点响应中断后,能自动转入中断处理,处理完毕能自动返回断点现现行行程程序序断点断点A设备中断设备中断为为B服服务务B设备中断设备中断为为A服服务务设设“B”级别级别高于高于“A”断点断点为为A服服务务6.具有中断请求功能的输入接口示意图具有中断请求功能的输入接口示意图(教材教材P169)输输入入设设备备锁锁存存器器(8)三态三态缓冲缓冲器器(8)CPU数据线数据线RDQ+5V中断请求中断请求触发器触发器QD中断允许触发器中断允许触发器数据线数据线D0位位地址译码器地址译码器INTR地址总线地址总线IOWIOR控制口选中控制口选中数据口选中数据口选中选通信号选
5、通信号.280X86中断指令中断指令1.开中断指令开中断指令STI功能:使功能:使F寄存器中寄存器中I标志置标志置1,CPU处于开中断状态。处于开中断状态。2.关中断指令关中断指令CLI功能:使功能:使F寄存器中寄存器中I标志置标志置1,CPU处于关中断状态。处于关中断状态。3.软件中断指令软件中断指令INTnn为中断类型码为中断类型码,n为为0255之间有定义的无符号整数。之间有定义的无符号整数。功能:无条件转向功能:无条件转向n型中断服务子程序。型中断服务子程序。INTn指令的执行过程指令的执行过程CPU响应软件中断的过程响应软件中断的过程F寄存器寄存器栈栈(保存保存INTn之前的之前的F
6、状态状态)使使F中的中的T标志置标志置0禁止单步操作禁止单步操作I标志置标志置0CPU处于关中断状态处于关中断状态断口地址断口地址栈栈先:断口基地址先:断口基地址(CS)栈,后:断口偏移地址栈,后:断口偏移地址(IP)栈栈CPU从从4n4n+3单元取出单元取出n型服务程序入口地址型服务程序入口地址IP:CS,从而转入从而转入n型中断服务程序。型中断服务程序。4.中断返回指令中断返回指令IRET功能:依次从栈顶弹出功能:依次从栈顶弹出6个元素个元素IP,CS,F如果栈顶是如果栈顶是INTn的断口地址,则执行的断口地址,则执行IRET后,返回断点,否则不能。后,返回断点,否则不能。图示图示执行执行
7、INTn栈顶示意图栈顶示意图执行执行IRET示意图示意图sp断口偏移地址断口偏移地址断口段基址断口段基址FCSFIPsp IRET是中断服务子程序的出口指令是中断服务子程序的出口指令 IRET和和RET的区别的区别IRET从栈顶弹出从栈顶弹出6个元素个元素IP,CS,F远程远程RET,从栈顶弹出从栈顶弹出4个元素个元素IP,CS近程近程RET,从栈顶弹出从栈顶弹出2个元素个元素IP.中断向量和中断向量表中断向量和中断向量表中断系统是为实现中断而采取的软,硬件措施中断系统是为实现中断而采取的软,硬件措施中断指令,中断向量和中断向量表是实现中断的重要中断指令,中断向量和中断向量表是实现中断的重要软
8、件措施。软件措施。1.什么是中断向量什么是中断向量中断向量是实模式下,中断服务子程序的中断向量是实模式下,中断服务子程序的入口地址入口地址2.中断向量表:所有中断向量的集合所有中断向量的集合3.中断向量表的设置中断向量表的设置CPU规定规定:在实模式下,中断向量在实模式下,中断向量表需设置在系统的表需设置在系统的RAM最低端的最低端的1K单元(单元(03FFH)0H:4H:3FCH:0型中断向量型中断向量1型中断向量型中断向量255型中断向量型中断向量它由它由2部分组成部分组成:服务程序所在代码段的段基址服务程序所在代码段的段基址2个字节个字节 服务程序入口的偏移地址服务程序入口的偏移地址2个
9、字节个字节4.中断向量表的表地址与中断类型的关系中断向量表的表地址与中断类型的关系4n+0+2+3+1n型服务程序入口的偏移地址型服务程序入口的偏移地址n型服务程序入口的段基址型服务程序入口的段基址n型中断向量型中断向量如:如:“21H”型中断向量:存放在型中断向量:存放在84H87H单元中单元中问:问:9CH型中断向量存放在何处?型中断向量存放在何处?解解:9CH4=1001110000=270H9CH型中断向量存于型中断向量存于270H273H单元中单元中5.中断向量的引导作用中断向量的引导作用CPU响应软件中断的过程响应软件中断的过程YYXX21H型中断向量型中断向量421H用户程序用户
10、程序MOVAH,1INT21HMOVDL,ALNEXT:F寄存器内容寄存器内容堆栈区堆栈区NEXT的有效地址的有效地址NEXT的段基址的段基址XX:YY21H型服务程序型服务程序IRETIPCSIPCSFIRET6.中断向量表的初始化中断向量表的初始化 由由BIOS设计的中断服务程序设计的中断服务程序(如如INT16H,INT10H)其中断向量在加电时由其中断向量在加电时由BIOS负责写入中断向量表。负责写入中断向量表。由由DOS设计的中断服务程序设计的中断服务程序(如如INT21H)其中断向其中断向量是在启动量是在启动DOS时,由时,由DOS负责写入中断向量表。负责写入中断向量表。用户程序开
11、发的中断服务程序,由用户程序写入其用户程序开发的中断服务程序,由用户程序写入其中断向量。中断向量。方法一、自己编写程序填写中断向量方法一、自己编写程序填写中断向量CLIPUSHDSMOVAX,0000HMOVDS,AXMOVBX,4*nMOVAX,OFFSETSERVICEMOVBX,AXMOVAX,SEGSERVICEMOVBX+2,AXPOPDSSTI方法二、方法二、DOS设计设计2个子程序,专门用于中断向量的读出、写入个子程序,专门用于中断向量的读出、写入INT21H的的35H子功能子功能功能:读出功能:读出n型中断向量型中断向量入口:入口:AL=中断类型码中断类型码出口:出口:ES:B
12、X=n型中断向量型中断向量INT21H的的25H子功能子功能功能:写入功能:写入n型中断向量型中断向量入口:入口:DS=中断服务程序所在代码段的段基址中断服务程序所在代码段的段基址DX=中断服务程序入口的偏移地址中断服务程序入口的偏移地址例:把用户程序中以例:把用户程序中以“TIMER”命名的中断服务子程序命名的中断服务子程序的入口地址的入口地址41CH41CH+3单元单元数:数:OLD1CDD?代:代:MOVAH,35HMOVAL,1CHINT21HMOVWORDPTROLD1C,BXMOVWORDPTROLD1C+2,ESPUSHDSMOVAX,CSMOVDS,AXMOVDX,OFFSET
13、TIMERMOVAH,25HMOVAL,1CHINT21HPOPDS7.关于中断向量表的说明关于中断向量表的说明在实模式下在实模式下,系统系统RAM最低端的最低端的1K单元为中断向量表,单元为中断向量表,但是并非每一个表项都是中断向量。但是并非每一个表项都是中断向量。BIOS利用某些表项利用某些表项做为做为“参数指针参数指针”,参数指针指向的是一群参数参数指针指向的是一群参数,而不是中断而不是中断服务程序服务程序,因此称它们为因此称它们为“向量向量”是比较合适的。是比较合适的。例如例如:1DH型向量型向量,指向屏幕参数表。指向屏幕参数表。1EH型向量型向量,指向软盘参数表。指向软盘参数表。1F
14、H型向量型向量,指向图型字符表。指向图型字符表。41H型向量型向量,指向第一台硬盘参数表。指向第一台硬盘参数表。46H型向量型向量,指向第二台硬盘参数表。指向第二台硬盘参数表。用户程序不能改动这些向量用户程序不能改动这些向量,当然也不能执行以当然也不能执行以1DH,1EH,1FH,41H,46H为中断类型码的软中断指令为中断类型码的软中断指令,否则系统否则系统将会瘫痪。将会瘫痪。.4系统中断的分类系统中断的分类CPU中断中断硬件中断硬件中断(外部中断外部中断)软件中断软件中断(内部中断内部中断)PC机机256种种中断中断可屏蔽中断可屏蔽中断非屏蔽中断非屏蔽中断BIOS中断中断DOS中断中断DO
15、S专用中断专用中断DOS保留中断保留中断用户可用用户可用DOS中断中断用户可开发的中断用户可开发的中断CPU中断逻辑中断逻辑CPU中断中断软件中断(软件中断(INTn指令)指令)非屏蔽中断请求非屏蔽中断请求中中断断控控制制系系统统NMI可可屏屏蔽蔽中中断断请请求求INTR一一.CPU中断中断CPU中断是指中断是指:CPU执行某些操作而引发的中断执行某些操作而引发的中断,这类中这类中断使用了断使用了0、1、3、4、6、7中断号。中断号。1.除法错中断除法错中断0型中断型中断CPU执行执行DIV或或IDIV指令指令,如果除数为如果除数为0,或者商数超出或者商数超出寄存器的表示范围寄存器的表示范围,
16、CPU自动调用自动调用0型中断服务程序。型中断服务程序。DOS为为0型中断设计的服务程序并没有为型中断设计的服务程序并没有为“除法错除法错”采取采取什么补救措施什么补救措施,仅仅是显示一行错误信息仅仅是显示一行错误信息“Divideoverflow”,然后返回然后返回DOS。因此因此,用户程序执行用户程序执行“INT0”指令是毫无意指令是毫无意义的。义的。2.单步中断单步中断1型中断型中断3.断点中断断点中断3型中断型中断八八四四当标志寄存器的当标志寄存器的T标志为标志为1时时,CPU一条指令执行完毕一条指令执行完毕,自动调用自动调用1型中断服务程序。但是型中断服务程序。但是,DOS为为1型中
17、断设计的服务程序只有一型中断设计的服务程序只有一条条IRET指令。实际上指令。实际上,单步中断是因为单步中断是因为DEBUG程序的需要而设计程序的需要而设计的。在用户程序中执行的。在用户程序中执行“INT1”指令是毫无意义的。指令是毫无意义的。CPU执行执行“INT3”指令后指令后,调用调用3型中断服务程序型中断服务程序,而而DOS系统的系统的3型中断服务程序也只有一条型中断服务程序也只有一条IRET指令。断点中断也是因为指令。断点中断也是因为DEBUG程序的需要而设计的。而在程序的需要而设计的。而在DEBUG程序当中程序当中,利用利用“INT3”指令设置程序断点指令设置程序断点,当执行到当执
18、行到“INT3”指令时指令时,转入转入3型中断型中断服务程序(该程序应由服务程序(该程序应由DEBUG设计)设计),显示断点前程序的执行结显示断点前程序的执行结果。在用户程序中执行果。在用户程序中执行“INT3”指令是毫无意义的。指令是毫无意义的。4.溢出中断溢出中断4型中断型中断对应的软件中断指令有两种汇编格式对应的软件中断指令有两种汇编格式,功能稍有不同。功能稍有不同。INTOINT4八八四四当当FLAG寄存器的溢出标志为寄存器的溢出标志为1,在这种条件下在这种条件下,执行执行“INTO”指令指令,将会调用将会调用4型服务程序。否则型服务程序。否则,如果溢出标如果溢出标志为志为0,执行执行
19、“INTO”指令是无效的。指令是无效的。但是和但是和1型、型、3型中断一样,型中断一样,DOS为为4型中断设计的型中断设计的服务程序也只有一条服务程序也只有一条IRET指令。如果用户程序需要对指令。如果用户程序需要对运算过程进行监控,应当在有可能产生溢出的运算操运算过程进行监控,应当在有可能产生溢出的运算操作之后安排一条作之后安排一条INTO指令监测溢出标志指令监测溢出标志,同时同时,还要自还要自行设计溢出处理程序取代原先的行设计溢出处理程序取代原先的4型中断服务程序。型中断服务程序。二二.软件中断软件中断执行执行有定义的有定义的INTn指令而引发的中断指令而引发的中断,称为软件中断。称为软件
20、中断。在这里在这里,之所以加了之所以加了“有定义的有定义的”这一限制词这一限制词,是因为并非所是因为并非所有的中断号都有与之配套的中断服务程序。有的中断号都有与之配套的中断服务程序。软件中断使用软件中断使用05H,10HFFH中的若干个中断号。软件中的若干个中断号。软件中断又可分为中断又可分为BIOS中断、中断、DOS中断。中断。1.BIOS中断中断BIOS中断中断,占用了占用了05H、10H1FH中断号中断号,用户程序执用户程序执行相关的软中断指令可以调用相应的中断服务程序。行相关的软中断指令可以调用相应的中断服务程序。INT05H屏幕打印屏幕打印;INT10H屏幕显示屏幕显示I/O;INT
21、11H设备配置检测设备配置检测;八八四四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占用了。但是,与占用了。但是,与这些中断号对应的并不是中断服务程序。也就是说,不存在与这些中断号对应的并不是中断服务程序。也就是说,不存在与这些中
22、断号对应的软中断指令这些中断号对应的软中断指令,用户程序如果执行用户程序如果执行INT1DHINT1FH,INT41H,INT46H,必将引起系统瘫痪(参看中断向量必将引起系统瘫痪(参看中断向量表的说明)。表的说明)。八八四四2.DOS中断中断DOS中断中断,又分为又分为DOS专用中断专用中断,DOS保留中断保留中断,用户可调用的用户可调用的DOS中断以及保留给用户开发的中断。中断以及保留给用户开发的中断。(1)DOS专用中断专用中断22H型中断型中断程序正常结束时程序正常结束时,DOS将自动调用该中断返回将自动调用该中断返回父进程。父进程。23H型中断型中断程序非正常结束时程序非正常结束时(
23、如如:用户按下用户按下Ctrl_C,或者或者Ctrl_Break中途停止程序的运行中途停止程序的运行),DOS调用该中断。调用该中断。24H型中断型中断程序运行发生严重错误时程序运行发生严重错误时(例如例如:对软磁盘文件对软磁盘文件进行操作的时候进行操作的时候,驱动器小门没有关闭驱动器小门没有关闭,或进行打印操作而打印或进行打印操作而打印机没有连通机没有连通),DOS自动调用此类中断自动调用此类中断,发出错误信息发出错误信息“NotreadyAbort,Retry,Ignore?”,这些中断是这些中断是DOS专用的专用的,DOS在调用此类在调用此类中断之前中断之前,还要做些准备工作。因此还要做
24、些准备工作。因此,用户程序不能直接调用这些用户程序不能直接调用这些中断。中断。八八四四28H3FH型中断型中断也为也为DOS专用专用,Microsoft公司没有公公司没有公开这类中断的功能。但是开这类中断的功能。但是,一些醉心钻研一些醉心钻研DOS的专家们的专家们,仍然仍然破译出一些有价值的信息。例如破译出一些有价值的信息。例如:INT33H为鼠标器调用。为鼠标器调用。(2)用户可调用的用户可调用的DOS中中断断20H型中断型中断用户程序执行用户程序执行INT20H指令可结束程序的指令可结束程序的运行运行,返回返回DOS。但必须注意但必须注意:在执行在执行INT20H之前之前,必须保证必须保证
25、用户程序用户程序CS寄存器的内容等于寄存器的内容等于PSP段基址。段基址。因此在用户的因此在用户的COM文件中文件中,可以直接使用可以直接使用INT20H返回返回DOS。INT20H与与INT21H的的0号功能调用号功能调用,完成相同的操作。完成相同的操作。21H型中断型中断DOS系统的许多功能都集中在系统的许多功能都集中在21H型中断型中断服务程序中。用户程序把功能号写入服务程序中。用户程序把功能号写入AH寄存器寄存器,设置相应的设置相应的入口参数入口参数,然后执行然后执行INT21H即可调用不同的功能。我们把即可调用不同的功能。我们把执行执行INT21H指令所完成的功能指令所完成的功能,称
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 课件
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内