常见的中断号

本文详细介绍了PC机常用的中断号及其作用,并解析了DOS中断表,帮助开发者更好地理解中断处理机制。

   最近工作需要用dos系统开发,以前一直搞linux,哪里还容得下其他的系统╮(╯▽╰)╭

   下面将PC机常用的中断号贴出来,都怪自己大学的微机原理与接口技术没学好啊!

●INT 00H:“0”作为除数

●INT 01H:单步中断

●INT 02H:非屏蔽中断

●INT 03H:断点中断

●INT 04H:算数溢出错误

●INT 05H:打印屏幕和BOUND越界

●INT 06H:非法指令错误

●INT 07H:处理器扩展无效

●INT 08H:时钟中断

●INT 09H:键盘输入

●INT 0BH:串行通信口(COM2)

●INT 0CH:串行通信口(COM1)

●INT 0DH:并行通信口(LPT2)

●INT 0EH:磁盘驱动器输入/输出

●INT 0FH:并行通信口(LPT1)

●INT 10H:显示服务(Video Service)

●INT 11H:读取设备配置

●INT 12H:读取常规内存大小(返回值AX为内存容量,以K为单位)

●INT 13H:直接磁盘服务(Direct Disk Service)

●INT 14H:串行口服务(Serial Port Service)

●INT 15H:杂项系统服务(Miscellaneous System Service)

●INT 16H:键盘服务(Keyboard Service)

●INT 17H:并行口服务(Parallel Port Service)

●INT 18H:ROM Basic

●INT 19H:重启动系统

●INT 1AH:时钟服务(Clock Service)

●INT 1BH:Ctrl+Break处理程序

●INT 1CH:用户时钟服务

●INT 1DH:指向显示器参数表指针

●INT 1EH:指向磁盘驱动器参数表指针

●INT 1FH:指向图形字符模式表指针

DOS中断表如下

●INT 20H:中止程序运行

●INT 21H:字符功能调用、目录控制、文件操作、系统功能、进程控制、时间和日期功能

●INT 22H:中止处理程序的地址

●INT 23H:Ctrl+C处理程序

●INT 24H:致命错误处理程序

●INT 25H:读磁盘扇区(忽略逻辑结构)

●INT 26H:写磁盘扇区(忽略逻辑结构)

●INT 27H:中止,并驻留在内存

●INT 28H:DOS空闲

●INT 2FH:多重中断服务

●INT 33H:鼠标功能中断

<think>嗯,用户问的是MSI中断号,这个我得先回忆一下相关的知识。首先,MSI是Message Signaled Interrupts的缩写,对吧?以前的中断机制是使用物理的中断线,比如PCI设备的IRQ,但MSI通过发送消息到特定地址来触发中断,这样可以避免共享中断线带来的问题,提高效率。 那MSI中断号具体是什么呢?可能是指每个MSI消息对应的中断向量号?在传统中断中,每个设备的中断请求通过IRQ编号,而MSI可能使用不同的编号方式。需要确认一下MSI中断号的分配机制,比如操作系统如何给设备分配这些中断号,或者是不是设备自己配置的。 另外,MSI-X是MSI的扩展,支持更多的中断向量,可能中断号的分配方式也有不同。用户可能需要了解MSI和传统中断的区别,以及MSI的优势,比如减少延迟、避免共享冲突等。 还要注意MSI中断号在操作系统中的表现,比如在Linux中,查看/proc/interrupts可能会显示MSI相关的信息,但具体的中断号是否由驱动程序或内核动态分配呢?可能需要解释一下MSI的工作流程,从设备生成消息到CPU处理中断的过程,以及中断号在这里的作用。 可能用户是遇到了驱动开发或者系统调试的问题,需要了解如何配置或调试MSI中断。所以回答中要包括基本概念、工作原理、与传统中断的区别,以及实际应用中的例子,比如在PCIe设备中的使用情况。 最后,确保术语准确,比如MSI中断号是否准确的说法,或者是否应称为中断向量号,可能需要查证一下资料。但通常MSI中断号指的是设备使用的中断向量,由系统分配,每个MSI对应一个唯一的向量号,用于CPU识别中断来源。</think>MSI(Message Signaled Interrupts,消息信号中断)是一种基于消息的中断机制,与传统的中断线(如IRQ)不同。以下是对MSI中断号的逐步解释: --- ### 1. **MSI的基本概念** - **工作原理**:MSI通过向内存特定地址写入数据(消息)来触发中断,而非依赖物理中断线。 - **优势**:避免中断线共享冲突、支持多中断向量、降低延迟。 --- ### 2. **MSI中断号的本质** - **中断号(Interrupt Vector)**:在MSI中,“中断号”本质是CPU用于识别中断类型的**向量编号**,由操作系统动态分配。 - **与传统IRQ的区别**: - 传统中断:通过IRQ编号(如IRQ 16)映射到中断向量。 - MSI中断:直接分配独立的中断向量号,无需IRQ中转。 --- ### 3. **MSI中断号的分配** 1. **设备初始化时**:PCI/PCIe设备通过配置空间声明支持的MSI数量(1个、2个、4个等)。 2. **操作系统分配**:内核为设备分配对应的中断向量号,并写入设备的MSI配置寄存器。 3. **触发中断**:设备向指定地址写入消息(含中断向量号),CPU根据该号调用对应的中断处理程序。 --- ### 4. **MSI-X扩展** - **MSI-X**:支持更多中断向量(如2048个),每个中断可独立配置地址和数据(中断向量号)。 - **应用场景**:高性能场景(如网卡、GPU),为不同事件分配独立中断。 --- ### 5. **查看MSI中断号(以Linux为例)** - **查看系统中断分配**: ```bash cat /proc/interrupts ``` 输出中MSI中断以`MSI`或`MSI-X`标记,例如: ``` PCI-MSI 123456 edge enp0s31f6 ``` - **调试工具**:使用`lspci -vv`查看设备的MSI配置。 --- ### 6. **关键配置参数** - **Message Address**:中断消息的目标内存地址(由内核设置)。 - **Message Data**:包含中断向量号的数值(即“中断号”)。 --- ### 7. **常见问题** - **为什么MSI更高效?** - 无需中断控制器(如APIC)的仲裁。 - 支持精确中断源定位(每个事件对应独立向量)。 - **如何验证MSI是否启用?** - 在Linux中检查`dmesg`日志,确认设备驱动启用了MSI/MSI-X。 --- ### 总结 MSI中断号是操作系统动态分配的中断向量编号,用于在消息信号中断机制中精确识别设备事件。它消除了传统中断的共享冲突问题,是现代PCI/PCIe设备实现高效中断处理的核心机制。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

玖零大壮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值