INT中断服务程序.pdf

INT中断服务程序.pdf

ID:52956916

大小:117.43 KB

页数:21页

时间:2020-04-03

INT中断服务程序.pdf_第1页
INT中断服务程序.pdf_第2页
INT中断服务程序.pdf_第3页
INT中断服务程序.pdf_第4页
INT中断服务程序.pdf_第5页
资源描述:

《INT中断服务程序.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、.INT中断服务程序.李晓锋2014-05-12............................................................李晓锋INT中断服务程序2014-05-121/21Outline1.INT中断服务程序的编写............................................................李晓锋INT中断服务程序2014-05-122/21INT指令过程CPU执行intn指令,相当于引发一个n号中断的中断过程,执行过程如下:1.取中断类型码n;2

2、.标志寄存器入栈,IF=0,TF=0;3.CS、IP入栈;4.(IP)=(n*4),(CS)=(n*4+2)。从此处转去执行n号中断的中断处理程序。............................................................李晓锋INT中断服务程序2014-05-123/21INT指令的调用可以在程序中使用INT指令调用任何一个中断的中断处理程序。.test1.asm示例.assumecs:codecodesegmentstart:movax,0b800hmoves,axmovbyteptre

3、s:[12*160+40*2],’!’int0codeendsendstart.............................................................李晓锋INT中断服务程序2014-05-124/21Test1.asm解读程序是没有做除法,但是在结尾使用了int0指令。CPU执行int0指令时,将引发中断过程,执行0号中断处理程序,而系统设置的0号中断处理程序的功能是显示“Divideoverflow”,然后返回到系统。可见,int指令的最终功能和call指令相似,都是调用一段程序。因此

4、,一般情况下,系统将一些具有一定功能的子程序,以中断处理程序的方式提供给应用程序调用。我们在编程的时候,可以用int指令调用这些子程序。当然,也可以自己编写一些中断处理程序供别人使用。以后,我们可以将中断处理程序简称为中断例程。............................................................李晓锋INT中断服务程序2014-05-125/21编写供应用程序调用的中断例程前面,我们已经编写过中断0的中断例程了,现在我们讨论可以供应用程序调用的中断例程的编写方法。我们通过两个实例来讨论

5、:实例一编写、安装中断7ch的中断例程,实现求一word型数据的平方。实例二编写、安装中断7ch的中断例程,实现将一个全是字母,以0结尾的字符串,转化为大写。............................................................李晓锋INT中断服务程序2014-05-126/21示例一示例一编写、安装中断7ch的中断例程:功能:求一word型数据的平方。参数:(ax)=要计算的数据。返回值:dx、ax中存放结果的高16位和低16位。应用举例:求2*34562...............

6、.............................................李晓锋INT中断服务程序2014-05-127/21示例一assumecs:codecodesegmentstart:movax,3456;(ax)=3456int7ch;调用中断7的中断例程ch,\计算中的数据的平方axaddax,axadcdx,dx;存放结果,讲结果乘以2movax,4c00hint21hcodeendsendstart.....................................................

7、.......李晓锋INT中断服务程序2014-05-128/21安装程序我们要做三部分工作:1.编程实现求平方功能的程序;2.安装程序,我们将其安装在0:200处;3.设置中断向量表,将程序的入口地址保存在7ch表项中,使其成为中断7ch的中断例程。............................................................李晓锋INT中断服务程序2014-05-129/21程序解读注意,在中断例程sqr的最后,要使用iret指令。iret指令的功能CPU执行int7ch指令进入中断例程之前

8、,标志寄存器、当前的CS和IP被压入栈中,在执行完中断例程后,应该用iret指令恢复int7ch执行前的标志寄存器和CS、IP的值,从而接着执行应用程序。int指令和iret指令的配合使用与call指令和r

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。