7.45 王爽汇编语言(四十)

中间笔记

1.什么是中断信息? CPU 在执行完一条指令后,如果 CPU 内部或外部突然传来一条特殊信息,那么 CPU 会立即去处理这条信息,这条特殊的信息 称为中断信息。其可以从 CPU 内部产生,也可以从 CPU 外部产生。

2.什么是中断向量表? CPU 接收到中断信息后,会根据中断信息的类型,转而交给不同的中断处理程序进行处理,中断信息的类型由中断类型码表示。 中断类型码由 8 位字节表示,那么就有 256 种中断类型码。我们知道,CPU 要去执行中断处理程序的话,首先必须改变其 CS:IP 的 地址(即将 CPU 寄存器设置为中断程序的段地址和偏移地址)。 而 256 种中断类型码对应 256 种中断处理程序,我们需要记录其每个程序的入口段地址和偏移地址,这些地址由一个列表保存,这个列表 称为中断向量表(即中断处理程序入口地址的列表)。 而中断向量表保存在内存中,对于 8086 CPU 来讲,中断向量表默认保存在 0000:0000 到 0000:03FF 的 1024 个单元中。为什么是 1024 呢? 因为每个中断程序的入口地址占两个字大小(高地址字存放段地址,低地址字存放偏移地址)。

检测点 12.1

(1) 解析:我看中断类型码从 0 开始,那么 3 号中断源地址对应中断向量表的索引即为 3,那么中断程序 入口地址即为:0070:018B。

(2) 解析: 我们知道中断向量表地址从 0000 ~ 03FF; 如果是 1 号,其对应内存单元地址为 0004 ~ 0007; 如果是 2 号,其对应内存单元地址为 0008 ~ 000B; 如果是 N 号,其对应内存单元地址为 (4N) ~ (4N + 3);

这里搞错了,题目是问入口的(偏移地址的内存单元的地址)和(段地址的内存单元的地址)。 不过搞清楚整个地址后,也简单。 偏移地址是存放在低位字的,所以偏移地址对应的内存单元的地址为(4N)~ (4N + 1) 段地址是存放在高位字的,所以段地址对应的内存单元的地址为(4N + 2)~ (4N + 3)

总结

没啥难的,继续后续中断过程学习。

Last Updated:
Contributors: Hunter-0x07