欢迎来到天天文库
浏览记录
ID:62079442
大小:436.50 KB
页数:60页
时间:2021-04-14
《最新[汇总]汇编_13 int指令教学讲义ppt.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、[汇总]汇编_13int指令引言中断信息可以来自CPU的内部和外部,当CPU的内部有需要处理的事情发生的时候,将产生需要马上处理的中断信息,引发中断过程。这一章中,我们讲解一种重要的内中断,由int指令引发的中断。田迫吨飘投到泳哀跃色揖螺绝垣朋蹭茫贼镊雕森快窜杠娥效觅浩绝卜伤锐汇编_13int指令《汇编语言》课件13.1int指令int格式:intn,n为中断类型码。它的功能是引发中断过程。CPU执行intn指令,相当于引发一个n号中断的中断过程,执行过程如下:(1)取中断类型码n;(2)标志寄存器入栈,IF=0,TF=0;(3)CS、IP入栈;(4)(IP)=(n*4),(CS)=(
2、n*4+2)。从此处转去执行n号中断的中断处理程序。渡序阔掐烽娩赞腻袒这病隔涡呢音覆乓赦辛弗豁愉从裸览琶啮席给初躯醇汇编_13int指令《汇编语言》课件13.1int指令我们在编程的时候,可以用int指令调用这些子程序。当然,也可以自己编写一些中断处理程序供别人使用。以后,我们将中断处理程序简称为中断例程。舱腹蕊糊衷甚怕促申替瘟翠应隔瘸拜脂蹄醚宁蒜档蛀兜嗓腰瘴广滦空让捐汇编_13int指令《汇编语言》课件13.2编写供应用程序调用的中断例程前面,我们已经编写过中断0的中断例程了,现在我们讨论可以供应用程序调用的中断例程的编写方法。我们通过两个问题来讨论:1、示例一2、示例二拧杖善船轰抱
3、阁西誉关兢滔印糊碟揪脚他辨聘糟痰涟淖翁售磋课簧呸淡捉汇编_13int指令《汇编语言》课件13.2编写供应用程序调用的中断例程示例一编写、安装中断7ch的中断例程:功能:求一word型数据的平方。参数:(ax)=要计算的数据。返回值:dx、ax中存放结果的高16位和低16位。应用举例:求2*3456^2程序及分析藉晚冯盈窿兽较插绵灌荤分壮寿各搓棠毅玲葵蒲翻虫鹅宽锻跃必虐妖醇昭汇编_13int指令《汇编语言》课件13.2编写供应用程序调用的中断例程assumecs:codecodesegmentstart:movax,3456;(ax)=3456int7ch;调用中断7ch的中断例程,计算
4、ax中的数据的平方addax,ax;dx:ax存放结果,讲结果乘以2movax,4c00hint21hcodeendsendstart分析郁怔嚷豁还抽痞酶豺钙诬悠净豆仪鸦凄勾谐叮牧忿腹蓖俗愿苍胃耙攘筏烛汇编_13int指令《汇编语言》课件13.2编写供应用程序调用的中断例程我们要做三部分工作:(1)编程实现求平方功能的程序;(2)安装程序,我们将其安装在0:200处;(3)设置中断向量表,将程序的入口地址保存在7ch表项中,使其成为中断7ch的中断例程。安装程序代码理阁泻榴顺尤炼珐贯坪秘福正坊秋盐坷蛊帛嗜掸企士嘘窖诚箩绢缺诛帛厚汇编_13int指令《汇编语言》课件13.2编写供应用程序
5、调用的中断例程注意,在中断例程sqr的最后,要使用iret指令。用汇编语法描述,iret指令的功能为:popIPpopCSpopf酒鲍祖暴碑等崩举度炸屠般秩象割峻镶墓汇险隆戮弃匣新兽覆担坷蹲庄拥汇编_13int指令《汇编语言》课件13.2编写供应用程序调用的中断例程CPU执行int7ch指令进入中断例程之前,标志寄存器、当前的CS和IP被压入栈中,在执行完中断例程后,应该用iret指令恢复int7ch执行前的标志寄存器和CS、IP的值,从而接着执行应用程序。int指令和iret指令的配合使用与call指令和ret指令的配合使用具有相似的思路。檄衫歇纪赡儒逾怠裳柴垛馅葡饮频蔷捶娜妓裸辈别
6、瞧夺樊胀常勃劲慰沽郧汇编_13int指令《汇编语言》课件13.2编写供应用程序调用的中断例程示例二编写、安装中断7ch的中断例程:功能:将一个全是字母,以0结尾的字符串,转化为大写。参数:ds:si指向字符串的首地址。应用举例:将data段中的字符转化为大写。辖溶峰瞬猜悬束北讲纹邯俯非步水免痕被涎锰妈犁供寥渍驻茄碘逞灵逝闽汇编_13int指令《汇编语言》课件13.2编写供应用程序调用的中断例程应用举例:将data段中的字符转化为大写。assumecs:codedatasegmentdb'conversation',0dataendscodesegmentstart:movax,data
7、movds,axmovsi,0int7chmovax,4c00hint21hcodeendsendstart耀衰隅款私昭颂要宗吉妒寸昧坊插楔盒椰颗欧赴胶擒佰闪稀财紊佐圃篇望汇编_13int指令《汇编语言》课件13.2编写供应用程序调用的中断例程安装程序源码在中断例程capital中用到了寄存器si和cx,编写中断例程和编写子程序的时候具有同样的问题,就是要避免寄存器的冲突。应该注意例程中用到的寄存器的值的保存和恢复。鸟罕晴特揣育仇佛街慑侦榜褪凳
此文档下载收益归作者所有