《汇编语言第三版》王爽著 ------读书笔记
中断:CPU不再接着向下执行,而是转去处理中断信息
12.1 内中断的产生
中断源
1)除法错误,比如,执行div指令产生的除法溢出
2) 单步执行
3)执行 into指令;
4) 执行int指令
8086 CPU用 中断类型码(一个字节型数据) 标识中断信息的来源
共 256种 中断信息的来源,简称为中断源
上述4种中断源,在8086CPU中的终端类型码如下
1)除法错误:0
2) 单步执行:1
3)执行 into指令:4
4) 执行int指令,该指令的格式为 int n,指令中的n 为 字节型立即数,是提供给
CPU的中断类型码
12.2 中断处理程序
定义:处理中断信息的程序被称为 中断处理程序,需要对不同的中断信息编写不同
的处理程序。
CPU收到中断信息后,应该转去执行中断信息的处理程序,就要将CS:IP指向该程序的入口(程序第一条指令的地址)
中断信息中包含有标识中断源的类型码 作用 就是用来定位中断处理程序,所以需要根据8位的类型码得到中断处理程序的 段地址 和 偏移地址
12.3 中断向量表
定义:中断向量表,顾名思义 就是中断向量的列表,所谓中断向量,就是中断处理程序的入口地址,展开来说,中断向量表,就是中断处理程序入口地址的列表 。
CPU 用 8位 的 中断类型码 通过 中断向量表找到相应的中断处理程序的入口地址
中断向量表保存在内存中,其中存放着 256个中断源所对应的中断处理程序的入口
CPU 将中断类型码 作为 中断向量表的 表项号,定位相应的表项,从而得到中断处理程序的入口地址
8086 CPU 的中断向量表 存储在 内存 0000: 0000 到 0000:03FF的 1024个单元中
中断向量表中,一个表项占 两个字,高地址字存放段地址,低地址字存放偏移地址
12.4 中断过程
定义:找到中断处理程序的入口,并用它设置 CS:IP,这个过程由 CPU的硬件自动完成的,CPU硬件完成这个工作的过程被称为 中断过程
8086 CPU 收到中断信息后,引发的 中断过程
1)从(中断信息中)取得中断类型码;
2)标志寄存器的值入栈(因为在中断过程中要改变标志寄存器的值,所以先将其保
存在栈中)
3)设置标志寄存器的第8位TF和第9位IF的值为 0;