毕业论文开发语言企业开发JAVA技术.NET技术WEB开发Linux/Unix数据库技术Windows平台移动平台嵌入式论文范文英语论文
您现在的位置: 毕业论文 >> 开发语言 >> 正文

为什么在设置中断表idt之前,要设置8259a这个硬件

更新时间:2012-6-13:  来源:毕业论文

为什么在设置中断表idt之前,要设置8259a这个硬件,在《80x86汇编程序教程》杨季文那本书的时候没看在设置中断表前需要设置8259a啊,为什么在写操作系统的时候要设置8259a呢?

好像是因为系统要占用前面一些的中断,所以要把一些IRQ设置后一点

不记得是不是了,如果有错的话请指点

因为intel设计的失误,导致CPU内部中断从0开始,但是为了向下兼容,IRQ号全部从0x20开始,8259A是低级中断管理中枢,高级的叫ACPI还是啥的,中断大概是这么的,详细参见《微机原理》,就是有个ISR字节,还有一个MASK字节,还有一个CTL字节,每次来了外部中断,将8259A的IRQ号引脚电平拉低,然后将ISR对应BIT置位,然后CPU收到引脚电平拉低的信号,(不要问我CPU怎么知道的哦,数字电路里面讲的很详细哦),开始服务,如果是REAL模式,那么找irq * 4 ,irq*4 + 2 找到加载,如果是PROTECTED 模式,那么就找IDT的描述
符加载,异常和中断全部是一个IDT,所以前面32个是 CPU 内部中断,加载过程类似system_call,(以上仅仅是硬件中断,软中断实现方式参见《X86手册》《IA-32》手册,看看我说对了没,好久了,忘光了...

8259A是低级中断管理中枢(硬件,应该说就是外部的,可屏蔽的)。。你可以暂且这么理解:比如时钟中断,就是隔一段时间自动执行 int 0x20,(而执行的条件就是MASK,CTL,ISR来控制的)我们手动执行int 0x20 和 自动执行int 0x20,结果都是一样的,只是触发的条件不同。。。

硬件中断具有随机性,而软中断具有特地性

顺便说句: int 0 和除法错误,执行的代码虽然一样,但是如果如果是真正的除法错误会触发硬件的一些动作,记得是 杨季文 那本书好像讲了,具体在哪儿看到的,记不得了

软中断是NMI,忽视IF,如果在时钟中断里面来了软中断,那么立刻执行软中断.....

设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优尔论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。