(12)内中断

1、中断:就是打断,打扰,在正常做事中被人打断,事后又恢复进行原来做的事的过程。


2、内部中断:就是CPU本身内部产生的中断。比如你做事,忽然尿来了,自身打断,去上厕所,然后回来后继续做事。

      内部中断有四种:

      除法中断,如溢出。  中断码0

      单步执行,如单步跟踪时,会每步中断,以便查看。TF设置.。中断码1

     执行into指令。中断码4

      执行int指令.中断码n   如int 21h

      CPU如何知道是何种中断,,根据后面的中断码来判断。


3、中断向量表。每个中断都有一个处理功能的代码段,把每个代码段的首地址全总集中在一个表中。每个入口地址就作为一个表项。

                             它们的顺序可以根据中断码来确定。入口地址占四字节,前两字节为IP,后两字节为CS。且这个中断向量表固定地

                            存储在0000:0000开始,如0号中断的IP为:0000:0000,cs 为0000:0002,同理,9号中断也可算出:

                            IP=4*9,CS=4*9+2


4、中断过程。

      取得中断:根据中断码取得中断

      保存现场:pushf   (标志位入栈)

                          TF=0,IF=0,即,此时不能单步中断,屏蔽其它中断。

                          push cs   (段入栈)

                          push IP     (偏移量入栈)

      启动中断:call  中断码定位的CS:IP


5、iret  返回中断,中断功能执行完成后,就要回到原来的现场。

       pop ip

        pop cs

        popf

      和进入中断相反,逐个弹出来保存的现场数据。


6、劫持中断:只要把对应中断码的入口地址,改成我们自己的程序入口地址,这样就劫持了原来的中断功能,实现我们自己的功能。

                          当然,还可以保存好原来中断功能的入口地址,在必要的情况下,还可调用原来的中断功能。

      注意:劫持中断,最后返回也必须是iret,而不是ret


7、SS、SP是感情深重的夫妻,只要执行SS那么它会跟随执行到SP处。

      


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值