早教吧 育儿知识 作业答案 考试题库 百科 知识分享

只知道中断类型怎么就能求出中断服务入口地址?中断类型乘4不是中断向量的地址吗?又不是中断向量///书上有个题知道类型是8,直接乘以4就得到偏移地址,而例题中类型是17,又是自

题目详情
只知道中断类型 怎么就能求出中断服务入口地址? 中断类型乘4不是中断向量的地址吗?又不是中断向量///
书上有个题 知道类型是8,直接乘以4就得到偏移地址,而例题中类型是17,又是自己给出中断向量的值,不给值怎么能算呢?不理解
▼优质解答
答案和解析
8086系统在存储器的最低1KB区域(00000H~003FFH)建立一个中断向量表,存放256个中断类型的中断向量。这1024个单元被分成256组,每组包括4个字节单元,存储一个中断向量的段基址和段内偏移地址,高2个字节用于存放段基址,低两个字节用于存放段内偏移地址。
在执行某一条INT n指令时,CPU首先对断点和现场进行保护,然后将中断指令中的中断类型号n乘以4,得到一个地址,这个地址就是n号中断服务子程序的入口地址在中断向量表中的存放地址。按照这个地址,取出连续4个字节单元的内容,即n号中断服务子程序入口的段基址(2个字节)和偏移地址(2个字节),送入CS和IP,以实现n号中断调用。
例如,中断类型号为8的中断服务子程序的中断向量为0BA9H:00ABH(对应的物理地址为0BB3BH),已存放于中断向量表的00020H地址开始的连续4个字节单元中,具体的,(00020H)字单元存放00ABH,(00022H)字单元存放0BA9H。当CPU响应类型为8的中断请求时,获取其中断服务子程序入口地址的方法是:首先计算8*4=32=20H,然后从20H地址单元读出一个字信息送入IP,从22H地址单元读出一个字信息送入CS,从而使CS:IP指向逻辑地址0BA9H:00ABH,于是CPU便转去执行从物理地址0BB3BH开始的8号中断服务子程序。
看了 只知道中断类型怎么就能求出中...的网友还看了以下: