首页
社区
课程
招聘
[求助]软中断可屏蔽不?看了好多文章没个答案。
发表于: 2012-9-8 03:06 8990

[求助]软中断可屏蔽不?看了好多文章没个答案。

2012-9-8 03:06
8990
有的文章说软中断属于异常,异常是不可屏蔽的它与IF标志位无关和MNI中断线是一样的。

有的人说在0H~1FH是cpu的异常的向量表,有的人说从30H一直到0FFH都是软中断。

到底哪个正确呀,炒年糕。那可屏蔽中断又在哪儿呢。唯唯诺诺问一下,INT 2E可屏蔽么?>??

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 122
活跃值: (72)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
2
还有为什么读写ssdt的时候需要通过sti,cli对中断进行屏蔽,原因是什么?要屏蔽掉哪些中断。
2012-9-8 03:15
0
雪    币: 623
活跃值: (40)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
3
1. 软件发起的中断:
  使用 INT 指令,而 INT3, INTO 或者 BOUND 可以算是异常也可以算是软件发起。这些指令引发的中断是不能被屏蔽的。

2. 软件引发的异常:
  由软件执行过程中,由于某些条件或错误引发异常,同样这些异常是不能被屏蔽,但是异常是有优先级的,同时产生多个异常时,响应优先级别高的异常。

3. 关于中断的屏蔽:
  IF 标志位,只能对 makable(可屏蔽)的中断产生作用,就也是由 interrupt controller(中断控制器)产生的中断请求,这些中断请求可以通过 IF 标志进行屏蔽。
  interrupt controller(中断控制器)包括:8259,local APIC 以及 IO APIC,因此:这些部件所产生的中断可以被屏蔽。

4. 关于 NMI(不可屏蔽中断)
  NMI 直接通过处理器的 NMI pin 进行传递中断请求,是两个方法可以屏蔽 NMI:一是 PCH 上的处理器接口寄存器,二是能过 Loal APIC 来屏蔽。

5.  关于中断 vector(向量号)
  0 到 31 号中断向量号是保留的, 32-255 是开放给软件自定义使用。

6. 关于 sti,cli 指令
  sti 和 cli 指令会修改 IF 标志位,从而 开启 / 关闭 makable(可屏蔽)中断的响应许可!
2012-9-8 12:33
0
雪    币: 122
活跃值: (72)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
4
32-255是用户可以自己设置的,请问这些可以自己设置的是软中断还是异常?那外设的可屏蔽中断又使用IDT中的哪一部分呢??
我现在知道IDT的上部分0-31是cpu自己保留的,它们中有异常也有软中断,2号向量是NMI,其余的也是不可屏蔽的异常或者软中断。
那么我可以统计为0-31描述的是被保留的不可屏蔽向量区域(包含异常、软中断、NMI),那么剩下的32-255又该如何划分?它们都是让用户自己编程的软中断?还是说它们都是用于外设硬件对其设置的?对于后面这部分我糊涂了,Xuetr看到的是32-255中,上半部分是一些no used,下半部分全都是KiUnexpectedInterrupt n,这两者究竟是用于干什么的呢?
(int 2E算是自陷,可是为什么不包括在保留的32个向量中,有的文章提示道异常处理都在前32个向量,那么2E也是异常呀,但是它并不包括在IDT的头32个内,望指点....)。
2012-9-8 19:51
0
游客
登录 | 注册 方可回帖
返回
//