第2章 认识CPU-2.3 32位微处理器(3)

  1. 中断处理

80386不但保存了8086/8088的所有中断,还增强了很多功能。我们把外部中断称为"中断",把内部中断称为"异常"。

在实模式下,中断的处理和8086/8088完全一样。但是,在保护模式下,80386不再使用简单的中断向量表来处理中断程序,而是引入了"中断描述符"。

GATE STRUC ;门的数据结构

OFFSETL DW 0 ;32位偏移的低a16位

SELECTOR DW 0 ;选择子

DCOUNT DW 0 ;双字计数字段

GTYPE DB 0 ;类型

OFFSETH DW 0 ;32位偏移的高16位

GETE ENDS

中断的简单处理过程如下:

(1)当中断产生时,通过中断号找到对应的中断描述表。

(2)从中断描述表中取出对应的选择子和偏移。

(3)通过选择子从描述符中取出段的基值加上偏移,形成中断处理程序的位置。

(4)转入中断处理程序。

(5)中断处理程序分为以下两种。

 当程序出现中断时,让中断自己进行处理,程序跳到中断点后继续运行。

 中断程序可能先在环1进行一些处理,然后再跳环2进行一些处理,还可能跳用户层(环3)进行处理。但是Windows中是没有环1、环2的过程的,所以这种情况一般发生在异常中。这时就会变成先在系统级进行处理,当处理完后,再返回到用户级继续处理,当用户级完成后,再返回到中断点。

相关推荐
云泽80813 小时前
STM32 USART 详解(八):C I/O 串口重定向原理与实现
c语言·stm32·嵌入式硬件
ThornArmor13 小时前
重铸1996|肉体渲染:关节的裂缝:分段模型积木拼装与未成熟的 RSP 矩阵骨骼动画形变
c语言·汇编·c++·python·硬件架构·游戏机
T1mzhou13 小时前
ARM64 Linux 6.10 内核驱动(12):dd.c:probe/ remove、延迟 probe
linux·服务器·c语言·arm开发·arm
白色的北极熊15 小时前
c语言 scanf 输入流有空格,逗号 说明
c语言
Logic10115 小时前
C语言/数据结构位运算题解:异或XOR找出货船中的“独特载货量“——只出现一次的数字
c语言·数据结构·数组·位运算·时间复杂度·算法题·异或性质
xx~t18 小时前
嵌入式——51单片机3
linux·c语言·嵌入式硬件·51单片机
山下梅子酒22519 小时前
洛谷-入门-B2042
c语言
ysu_031419 小时前
08-二叉树遍历:四种方式详解
c语言·数据结构·算法·leetcode
ocean210319 小时前
2025-2026年C语言专题面试高频知识点洞察
c语言·面试·面试经验
Lzh编程小栈21 小时前
STM32 DMA深度解析|原理、完整工作流程、寄存器、中断联动,嵌入式面试高频考点(F1系列)
c语言·stm32·单片机·mcu·面试