中断向量表的结构

翻译自:http://support.microsoft.com/kb/71486/en-us

概括

系统内存底部的1 KBytes(1024字节)被用来储存中断向量。一个中断向量是一个形式为“偏移:段”的4字节的值,它代表了当CPU接收到一个中断时要调用的程序的地址。一些中断向量不指向可执行代码,而是指向某些数据结构。例如中断1Eh的向量指向一个11字节的包含磁盘驱动器信息的磁盘基础表。中断向量表是Intel 80x86/8088系列处理器的一个特性。

更多信息

因为每个中断向量都是一个4字节的值,中断向量表最多可以存放256个中断向量。每个向量都被存放在“段:偏移”式的地址:0000:(int #) X 4处。例如,int 24h(严重错误)的中断向量被放在地址0000:0090h。

这个中断向量的16进制内容可能会是这样的:

0000:0090h    22 03  A1  2A

执行int 24h时,会跳转到:2AA1h : 0322h

编程中的考虑

你可以用你的处理程序的地址来覆盖相应的中断向量,从而建立你自己的中断处理程序,但不建议用这个方法。一个程序可能在修改一个中断向量的所有4个字节之前被中断,因此可能导致错误的甚至灾难性的后果。所以,为了保证与未来的MS-DOS兼容,应该使用int 21h的25h号功能(设置中断向量)和35h号功能(获取中断向量)来访问中断向量。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值