中断向量表的结构

汇编语言 同时被 2 个专栏收录
12 篇文章 0 订阅
23 篇文章 0 订阅

翻译自: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
    点赞
  • 0
    评论
  • 1
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值