当前位置: 首页 > news >正文

中断向量表

中断向量表(interrupt vector table,IVT)是中断源的识别标志,可用来形成相应的中断服务程序的入口地址或存放中断服务程序的首地址称为中断向量。在Pc/AT中由硬件产生的中断标识码被称为中断类型号(当然,中断类型号还有其他的产生方法,如指令中直接给出、CPU自动形成等),即在中断响应期间8259A产生的是当前请求中断的最高优先级的中断源的中断类型号。中断类型号和中断向量之间有下面的关系: 中断类型号×4=存放中断向量的首地址 有了存放中断向量的首地址,从该地址开始的4个存储单元中取出的就是中断服务程序的入口。

介绍

是指中断服务程序入口地址的偏移量与段基值一个中断向量占据4字节空间。中断向量表是8086系统内存中最低端1K字节空间,它的作用就是按照中断类型号从小到大的顺序存储对应的中断向量,总共存储256个中断向量。在中断响应过程中,CPU通过从接口电路获取的中断类型号(中断向量号)计算对应中断向量在表中的位置,并从中断向量表中获取中断向量,将程序流程转向中断服务程序的入口地址。

列表

80x86系统是把所有的中断向量集中起来,按中断类型号从小到大的顺序存放到存储器的某一区域内,这个存放中断向量的存储区叫做中断向量表,即中断服务程序入口地址表。

由于中断向量表可以在操作系统层面灵活修改,因此,不同的系统的中断向量表可能是不同的。此外,intel在CPU的保护模式下,占用了0x00 ~ 0x1F共32个中断号,在Linux下,是从0x20开始用于系统自身的中断的,包括8259芯片的中断重置。

BIOS(实模式)的中断向量表如下:

80x86

I/O ADDR

INT TYPE(16进制)

FUNCTION

00 ~ 03

0

除法溢出中断

04 ~ 07

1

单步(用于DEBUG)

08 ~ 0B

2

非屏蔽中断(NMI)

0C ~ 0F

3

断点中断(用于DEBUG)

10 ~ 13

4

溢出中断

14 ~ 17

5

打印屏幕

18 ~ 1F

6/7

保留

8259主片

I/O ADDR

INT TYPE(16进制)

FUNCTION

20 ~ 23

8

定时器(IRQ0)

24 ~ 27

9

键盘(IRQ1)

28 ~ 2B

A

彩色/图形(IRQ2)

2C ~ 2F

B

串行通信COM2(IRQ3)

30 ~ 33

C

串行通信COM1(IRQ4)

34 ~ 37

D

LPT2控制器中断(IRQ5)

38 ~ 3B

E

磁盘控制器中断(IRQ6)

3C ~ 3F

F

LPT1控制器中断(IRQ7)

BIOS

I/O ADDR

INT TYPE(16进制)

FUNCTION

40 ~43

10

视频显示 I/O

44 ~ 47

11

设备检验

48 ~ 4B

12

测定存储器容量

4C ~ 4F

13

磁盘 I/O

50 ~ 53

14

RS-232 串行口 I/O

54 ~ 57

15

系统描述表指针

58 ~ 5B

16

键盘 I/O

5C ~ 5F

17

打印机 I/O

60 ~ 63

18

ROM BASIC 入口代码

64 ~ 67

19

引导装入程序

68 ~ 6B

1A

日时钟

提供用户中断

I/O ADDR

INT TYPE(16进制)

FUNCTION

6C ~ 6F

1B

Ctrl - Break 控制的软中断

70 ~ 73

1C

定时器控制的软中断

74 ~ 77

1D

视频参数块

78 ~ 7B

1E

软盘参数块

7C ~ 7F

1F

图形字符扩展码

在DOS系统(实模式)下,从0x20开始,用于操作系统本身。

DOS

I/O ADDR

INT TYPE(16进制)

FUNCTION

80 ~ 83

20

DOS 中断返回

84 ~ 87

21

DOS 系统功能调用

88 ~ 8B

22

程序中止时 DOS 返回地址(用户不能直接调用)

8C ~ 8F

23

Ctrl - Break 处理地址(用户不能直接调用)

90 ~ 93

24

严重错误处理(用户不能直接调用)

94 ~ 97

25

绝对磁盘读功能

98 ~ 9B

26

绝对磁盘写功能

9C ~ 9F

27

终止并驻留程序

A0 ~ A3

28

DOS安全使用

A4 ~ A7

29

快速写字符

A8 ~ AB

2A

Microsoft 网络接口

B8 ~ BB

2E

基本 SHELL 程序装入

BC ~ BF

2F

多路服务中断

CC ~ CF

33

鼠标中断

104 ~ 107

41

硬盘参数块

118 ~ 11B

46

第二硬盘参数块

11C ~ 3FF

47 ~ FF

BASIC 中断

保护模式

在Linux下(保护模式),没有使用BIOS设置的中断向量表,0x00 ~ 0x1F是CPU保护模式下的默认中断向量,而0x20开始,都是被Linux系统重新设置的。

X86占用的中断向量表如下:

向量号

助记符

说明

类型

错误号

产生源

0

#DE

除出错

故障

DIV或IDIV指令。

1

#DB

调试

故障/陷阱

任何代码或数据引用,或是INT 1指令。

2

--

NMI中断

中断

非屏蔽外部中断。

3

#BP

断点

陷阱

INT 3指令。

4

#OF

溢出

陷阱

INTO指令。

5

#BR

边界范围超出

故障

BOUND指令。

6

#UD

无效操作码

故障

UD2指令或保留的操作码。

7

#NM

设备不存在

故障

浮点或WAIT/FWAIT指令。

8

#DF

双重错误

异常终止

有(0)

任何可产生异常、NMI或INTR的指令。

9

--

协处理器段超越(保留)

故障

浮点指令

10

#TS

无效的任务状态段TSS

故障

任务交换或访问TSS

11

#NP

段不存在

故障

加载段寄存器或访问系统段

12

#SS

堆栈段错误

故障

堆栈操作或SS寄存器加载

13

#GP

一般保护错误

故障

任何内存引用和其他保护检查

14

#PF

页面错误

故障

任何内存引用

15

--

(intel保留)

 

 

16

#MF

x87 FPU浮点错误

故障

 

17

#AC

对齐检查

故障

有(0)

对内存中任何数据的引用。

18

#MC

机器检查

异常终止

错误码(若有)和产生源与CPU类型有关。

19

#XF

SIMD浮点异常

故障

 

Linux自己设置的中断以后再添加。

相关文章:

  • WM_NCCREATE与WM_CREATE的区别
  • GetWindowLongPtr
  • WNDCLASSEX
  • C++强制类型转换运算符(static_cast、reinterpret_cast、const_cast和dynamic_cast)
  • C++ 虚函数表 vfptr
  • WM_NCHITTEST
  • CreateProcess函数详解
  • CEF类笔记-cef_app
  • cef_client.h
  • cef_browser.h
  • C++ List的用法(整理)
  • cef_v8.h
  • SendMessage 用法详解及消息详解
  • TCP协议下的recv函数
  • CEF网址打不开,提示Check failed: fallback_available == base::win::GetVersion() > base::win::VERSION_WIN8
  • 深入了解以太坊
  • Brief introduction of how to 'Call, Apply and Bind'
  • canvas 高仿 Apple Watch 表盘
  • Django 博客开发教程 16 - 统计文章阅读量
  • interface和setter,getter
  • Mysql优化
  • Netty+SpringBoot+FastDFS+Html5实现聊天App(六)
  • Netty源码解析1-Buffer
  • React+TypeScript入门
  • React中的“虫洞”——Context
  • sessionStorage和localStorage
  • Spark RDD学习: aggregate函数
  • spring security oauth2 password授权模式
  • SpringBoot 实战 (三) | 配置文件详解
  • vue-router的history模式发布配置
  • WePY 在小程序性能调优上做出的探究
  • 开源中国专访:Chameleon原理首发,其它跨多端统一框架都是假的?
  • 看完九篇字体系列的文章,你还觉得我是在说字体?
  • 名企6年Java程序员的工作总结,写给在迷茫中的你!
  • 小程序、APP Store 需要的 SSL 证书是个什么东西?
  • LIGO、Virgo第三轮探测告捷,同时探测到一对黑洞合并产生的引力波事件 ...
  • #【QT 5 调试软件后,发布相关:软件生成exe文件 + 文件打包】
  • #在 README.md 中生成项目目录结构
  • (libusb) usb口自动刷新
  • (NO.00004)iOS实现打砖块游戏(十二):伸缩自如,我是如意金箍棒(上)!
  • (ros//EnvironmentVariables)ros环境变量
  • (附源码)ssm智慧社区管理系统 毕业设计 101635
  • (附源码)计算机毕业设计SSM智慧停车系统
  • (机器学习-深度学习快速入门)第一章第一节:Python环境和数据分析
  • (十一)手动添加用户和文件的特殊权限
  • (数位dp) 算法竞赛入门到进阶 书本题集
  • (一)VirtualBox安装增强功能
  • (一)WLAN定义和基本架构转
  • (一)插入排序
  • (转)linux自定义开机启动服务和chkconfig使用方法
  • .NET Remoting Basic(10)-创建不同宿主的客户端与服务器端
  • .Net Web窗口页属性
  • .NET 药厂业务系统 CPU爆高分析
  • .net使用excel的cells对象没有value方法——学习.net的Excel工作表问题
  • @property python知乎_Python3基础之:property