Linux---0.11---asm.s硬件中断类型介绍

发布时间 2023-10-07 21:49:28作者: 不会笑的孩子

_divide_error

这是一个标记,通常用于表示与除法错误相关的处理程序或函数。当发生除以零的错误时,处理器可能会跳转到与此标记关联的处理程序,以处理该错误。

_debug

_debug:这是一个标记,通常用于表示与调试相关的处理程序或函数。调试处理程序通常用于在调试模式下捕获和处理调试事件

_nmi(不可屏蔽中断)

_nmi:这是一个标记,通常用于表示与不可屏蔽中断(NMI)相关的处理程序或函数。NMI通常用于处理严重的硬件故障或问题

_int3

_int3:这是一个标记,通常用于表示与中断3(INT3)指令相关的处理程序或函数。INT3通常用于软件调试,它是一个中断指令,用于在程序中设置断点。

_overflow

_overflow:这是一个标记,通常用于表示与溢出错误相关的处理程序或函数。当整数运算导致溢出时,处理器可能会跳转到与此标记关联的处理程序。

_bounds

_bounds:这是一个标记,通常用于表示与边界检查错误相关的处理程序或函数。当访问数组或数据结构中的元素超出其边界时,可能会触发边界检查错误。

_invalid_op

_invalid_op:这是一个标记,通常用于表示与无效操作码或指令相关的处理程序或函数。当执行无效的指令或操作码时,可能会跳转到与此标记关联的处理程序。

_double_fault

_double_fault:这是一个标记,通常用于表示与双重故障相关的处理程序或函数。双重故障通常是由于先前的异常导致的,处理器尝试处理异常时再次失败。

_coprocessor_segment_overrun

_coprocessor_segment_overrun:这是一个标记,通常用于表示与协处理器段越界错误相关的处理程序或函数。这种错误通常与协处理器(如FPU)相关。

_invalid_TSS

_invalid_TSS:这是一个标记,通常用于表示与无效任务状态段(TSS)相关的处理程序或函数。TSS通常用于管理任务切换,当访问无效的TSS时可能触发此错误。

_segment_not_present

_segment_not_present:这是一个标记,通常用于表示与段不存在错误相关的处理程序或函数。当尝试访问不存在的段或不可访问的段时,可能会触发此错误。

_general_protection

_general_protection:这是一个标记,通常用于表示与通用保护错误相关的处理程序或函数。通用保护错误通常由于内存访问权限问题引起。

_coprocessor_error

_coprocessor_error:这是一个标记,通常用于表示与协处理器错误相关的处理程序或函数。协处理器错误通常涉及到协处理器操作的问题。

_irq13

这是一个标记,通常用于表示与IRQ(中断请求) 13 相关的处理程序或函数。IRQ 13 通常用于数学协处理器错误。

_reserved

_reserved:这是一个标记,通常用于表示与保留的或未定义的异常或错误相关的处理程序或函数。

异常和中断

  • 异常处理程序通常用于处理除以零错误,这是一个由CPU检测到的运行时错误,而不是由外部中断请求引发的中断。
  • 除以零错误是通过CPU内部的异常机制触发的,以通知操作系统或程序发生了一个不合法的操作。
  • 异常是由CPU内部的运行时条件引发的
  • 而中断通常是由外部设备或事件触发的,并且可能需要来自操作系统的响应。

可屏蔽中断(Maskable Interrupts)和不可屏蔽中断(Non-Maskable Interrupts NMI)

  • 可屏蔽中断(Maskable Interrupts)
    特点:可屏蔽中断是可以通过特定的设置或操作来屏蔽(禁用)或解除屏蔽(启用)的中断。这意味处理器可以选择是否响应这些中断请求。
    用途:可屏蔽中断通常用于与外部设备通信,如键盘、鼠标、磁盘驱动器等。它们允许系统控制中断的优先级和响应时间,以便在不同情况下进行适当的处理。

  • 不可屏蔽中断(Non-Maskable Interrupts,NMI)
    特点:不可屏蔽中断是无法通过正常的方式屏蔽或禁用的中断。它们具有更高的优先级,无论处理器的当前状态如何,都会立即引发响应。

  • 用途:NMI通常用于报告严重的系统问题,如硬件故障、内存错误、电源问题等。它们的目的是确保系统可以及时响应和处理这些严重问题,以防止系统崩溃或数据丢失。