80386中断与异常详解-Intel CPU异常处理
需积分: 45 82 浏览量
更新于2024-08-08
收藏 5.09MB PDF 举报
"80386中断和异常一览表-rockchip rk1108 datasheet v0 3 20160706"
在80386微处理器中,中断和异常是处理系统事件和错误的核心机制。中断允许CPU响应外部设备的请求,如键盘输入、定时器中断等,而异常则用于处理内部错误和非法操作。以下是80386中断和异常的详细解析:
0 - 除法出错:当执行DIV或IDIV指令时,如果除数为零或结果溢出,CPU会触发这个异常。这是对数学运算错误的保护机制。
1 - 调试异常(含单步):任何指令执行后都可能触发此异常,尤其是在调试模式下。单步执行(TRAP)也会引起此异常,用于调试目的。
2 - 非屏蔽中断:这类中断具有最高优先级,不受当前中断屏蔽位的影响,可以随时被CPU处理。例如,时钟中断就是非屏蔽中断。
3 - 断点(单字节INT 3):程序员可以使用INT 3指令设置断点,当CPU执行到该指令时,会引发异常进入调试模式。
4 - 溢出:执行可能导致溢出的算术运算(如ADD、SUB、MUL、IMUL)后,如果结果无法在指定的数据类型内表示,CPU会触发溢出异常。
5 - 边界检查:BOUND指令用于防止数组访问超出其定义的边界,如果访问越界,将产生此异常。
6 - 非法操作码:当CPU遇到不合法的指令编码或操作数时,如执行未知指令,会抛出非法操作码异常。
7 - 协处理器无效:浮点运算指令或者WAIT指令执行时,如果没有有效的浮点处理器或者处理器处于非活动状态,会触发此异常。
8 - 双重故障:当发生一个无法处理的异常时,CPU会尝试触发双重故障异常,这是一个严重错误的指示。
9 - 协处理器段超越:访问内存的浮点指令导致的异常,可能是因为协处理器段寄存器错误。
0AH - 无效TSS:跳转、调用、中断或IRET指令执行时,如果目标任务状态段(TSS)无效,会出现这个异常。
0BH - 段不存在:加载段寄存器或使用段寻址时,如果段不存在,会触发异常。
0CH - 堆栈段异常:装载SS寄存器或用SS寻址时,如果堆栈段有问题,如段选择子无效或段不存在,会引发此异常。
0DH - 通用保护异常:任何访问内存的指令或特权指令执行时,如果违反了内存访问权限,比如尝试读写只读段,会触发此异常。
0EH - 页失效:执行内存访问时,如果页表指示的页面不存在或者访问权限不符,会引发页失效异常。
0FH - 保留:这个中断号通常不用于80386,可能在其他处理器中有所分配。
10H - 协处理器出错:浮点运算指令或WAIT指令导致的错误,如浮点运算异常。
11H - 保留:这个中断号在80386中未定义,可能在特定系统或后续处理器中使用。
12H - 保留:同样未在80386中定义,可能在其他上下文中有特殊用途。
13H - 保留:一般留给软硬件供应商定义,可能用于特定设备驱动。
14H - 保留:通常用于串口驱动程序。
15H - 保留:通常用于扩展BIOS服务。
16H - 保留:可能用于键盘驱动程序。
17H - 保留:可能用于打印驱动程序。
18H - 保留:在某些系统中,可能用于ROM BASIC。
19H - 保留:可能用于系统启动程序。
1AH - 保留:可能与时钟管理相关。
1BH - 保留:通常与Ctrl+Break键的处理有关。
1CH - 保留:可能与定时处理有关。
1DH - 1FH:保留,通常用于参数指针或其他系统功能。
20H - 0FFH:这部分中断号用于其他硬件和软件中断,如DOS和Windows环境下的系统调用。
0 - 0FFH:软中断,由INT n指令触发,用于执行特定的系统功能或用户定义的服务。
在汇编语言编程中,理解这些中断和异常是至关重要的,因为它们可以帮助开发者正确地处理错误、调试程序以及与操作系统和其他硬件设备进行交互。在80X86汇编语言程序设计中,熟练掌握各种寻址方式、指令、伪指令、中断处理和异常处理机制,是编写高效、可靠的系统级和应用程序的基础。通过实例和练习,学习者可以加深对这些概念的理解,并提高编写汇编代码的能力。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2024-09-17 上传
2020-09-11 上传
2018-02-26 上传
2024-11-07 上传
点击了解资源详情
柯必Da
- 粉丝: 42
- 资源: 3763
最新资源
- transformers:收集资源以深入研究《变形金刚》
- Shopify spy - shopify store parser & scraper-crx插件
- node-friendly-response:进行JSON响应的简单方法
- 致敬页面
- brazilian-flags:显示 ListActivity 和 TypedArrays 的简单 Android 代码。 旧代码迁移至顶级 Android Studio
- chat-test
- 使用Temboo通过Amazon实现简单,健壮的M2M消息传递-项目开发
- 格塔回购
- pg-error-enum:没有运行时相关性的Postgres错误的TypeScript枚举。 还与纯JavaScript兼容
- textbelt:用于发送文本消息的Node.js模块
- SaltStack自动化运维基础教程
- FreeCodeCamp
- BurnSoft.Applications.MGC:My Gun Collection应用程序的主库,其中包含与数据库交互的大多数功能
- CoreFramework:实施全球照明技术的通用核心框架
- 数据库mysql基本操作合集.zip
- auto-decoding-plugin:以OWASP ModSecurity Core Rule Set插件的形式自动解码有效载荷参数