阅读:2878回复:6
IRQ号和中断号有什么区别?
IRQ号和中断号有什么区别?
可以用INT 指令模拟硬件中断吗? |
|
最新喜欢:![]()
|
沙发#
发布于:2001-06-29 10:01
IRQ号是硬中断的外部请求线号
中断号是DOS下我们所说的中断矢量 例如:IRQ为9的对应的中断号是0x0a; int可以模仿硬中断。如IRQ9的实现就是一例 |
|
|
板凳#
发布于:2002-04-25 00:35
IRQ号是硬中断的外部请求线号
中断号不是指DOS中断矢量,对于外部硬件中断,中断号是中断控制器i8259通过数据总线送给CPU的值,以此确定中断入口;对于CPU故障来说,是CPU自己产生的固定数值;其它情况为软件自陷所执行的int指令后的参数的值;这几种情况在DOS实模式下对应的中断服务子程序的入口地址保存在中断矢量表(IVT)中,而在Windows、Linux等保护模式下,对应的入口地址放在中断描述符表(IDT)中。 |
|
地板#
发布于:2002-04-26 13:57
在windows 2000 professional下,
IRQ对应的中断号=IRQ + 0x30 系统对IRQ的响应通过中断门,这样cpu会清除eflags的IF位, 而通过TRAP方式(即int xx)cpu不会clear IF bit. |
|
|
地下室#
发布于:2002-05-07 14:43
不同的IRQ号对应不同的INT号
INT 08 - IRQ0 INT 09 - IRQ1 INT 0A - IRQ2 INT 0B - IRQ3 INT 0C - IRQ4 INT 0D - IRQ5 INT 0E - IRQ6 INT 0F - IRQ7 INT 70 - IRQ8 INT 71 - IRQ9 INT 72 - IRQ10 INT 73 - IRQ11 INT 74 - IRQ12 INT 75 - IRQ13 INT 76 - IRQ14 INT 77 - IRQ15 要对某一硬中断编程,将你的中断服务程序的地址填入相应的中断向量表即可(INT号*4) |
|
|
5楼#
发布于:2002-05-07 16:35
在Windows 2000系统中,中断向量(中断号)完全只取决于HAL,与你指定的IRQ Line没有任何关系,反而是跟Windows 2000所定义的IRQL有关,很奇怪吧!大家可以用SoftICE跟踪一下,在Windows 2000下,系统时钟(用于多任务调度)的中断向量为0xD1,但它所对应的IRQ Line为8。
|
|
6楼#
发布于:2002-05-08 12:31
|
|
|