通过中断类型码求中断入口地址 | 您所在的位置:网站首页 › 量表的四种类型怎么表示 › 通过中断类型码求中断入口地址 |
目录 中断向量表 如何解题 例题(完整的题直接练练吧) 1: 2: 3: 4: 5:混合一点 中断向量表存放中断地址的一段内存空间称为中断向量表 存放各类中断的中断服务程序的入口地址 表的地址位于内存的0000:0000到0000:03FFH(即0段的0000到03FFH) 大小1KB,共256个入口 每个入口占用4个单元,一次为CS:IP ,低字节为段内偏移地址,高字节为段基址 中断类型码 乘 4=中断向量表对应地址 如何解题这种题其实很简单。不是×4就是除4,分清楚就行了 题目要求一般为给你中断类型码,一段向量表中的存储情况,问你中断服务程序的真正入口地址 假设中断类型码16H,求中断程序入口地址? 16H 是 0001 0110 给他左移2位就是乘4 0101 1000 (58H) 然后去 58H,59H,5AH,5BH中取数据
假设它们中的数据分别是 58H 里面的内容是 11H 59 H里面的内容是 22H 5AH 里面的内容是 33H 5BH 里面的内容是 44H 中断类型码*4+0 是 ip低8 中断类型码*4+1 是 ip高8 中断类型码*4+2 是 cs低8 中断类型码*4+ 3是 cs高8 然后进行拼接 CS:IP 4433:2211H 就是中断入口地址 IP 低8IP 高8CS 低8CS 高8一样遵循高高低低原则,低地址放低位高地址放低位 例题(完整的题直接练练吧) 1:80x86系统采用8259A的中断类型码为88H,试问: 这个中断源的中断请求信号应连向8259A的那个中断输入端? 中断服务程序的段地址和偏移地址应该分别装入哪两个字单元 第一问: 把88H展开 1000 1000 由ICW2,可以知道高五位是咱们自己设置的,低三位是根据连接在IR线,系统设置的。那么就可以知道这个中断段的中断请求连向8259A的IR0 第二问: 中断向量码*4=中断服务程序入口地址 1000 1000 左移两位就是×4,末尾补两个0 10 0010 0000 220H 首地址就是220H 中断服务程序的偏移地址和段地址分别填入4n和4n+2两个字单元 220H 221H 222H 223H 因为是0段,所以偏移地址就等于物理地址(可以这么记, 0000H*16那不还是0吗) 段地址填入 00222H,和00223两个字节单元 偏移地址填入00220H ,和00221H两个单元 2:8086微机系统的RAM存储单元中,从0000H:002CH开始一次存放23H,0FFH,00H,0F0H四个字节,该向量对应的中断号是(0BH),中断程序的物理地址是(0FFF23H) 解: 中断类型号=中断服务程序入口地址除4 2CH 展开 0010 1100 除以4,右移2位 0000 1011 (0BH) 如果在问你中断服务程序的物理地址是多少? 0F000H:0FF23H 物理地址=段*16+偏移 左移1位 0F0000H + 0FF23H 0FFF23H(物理地址) 3: 在微机系统中,CPU 对中断源的管理可采用中断向量方式。设某中断向量在中断向量表中 0000H:0018H 单元开始按地址递增方向依次存放 95H、96H、97H 和 98H,99H,9AH,9BH和9CH 八个字节,请回答: 该向量对应的中断类型码和中断服务程序的入口地址的 CS 和IP 分别是多少? 并简述所得结论的理由。 解题: 0018H 0000 0000 0001 1000 除4右移2位 0000 0000 0000 0110 (06H) 中断向量码06H CS 的值为 9897H IP 的值为 9696H 理由:中断向量表共1024个字节,每一级中断占用4个字节。前两个字节是中断子程序的偏移地址,后两个字节是中断子程序的段地址。按顺序存放在0段的0偏移-----0段的03FF偏移。 在 PC 机中5 号中断,它的中断向量地址是() A. 0000H: 0005H B:0000H: 0010HC.0000H:0014H D.0000H: 0020H 解题: 0000 0101 (5)乘4左移两位 0001 0100(14H) 5:混合一点(1)CS=? IP=? SP=? PSW=? (注意本题没有中断返回指令IRET,只是中断响应的过程) INT 7 双字指令 那么 IP的值需要+2 ip=0282H (IP始终指向下一条指令的偏移地址) 进入中断程序的响应,首先把 PSW(Flags )压栈, 保护现场。 SP指针= 1800H-2 =17FEH 关中断,关单步 IF=TF=0 PSW每位的状态你需要知道。1,3,5位没有有,从第11位开始,依次位oditszapc 可以知道IF和TF依次在 第九位,和第八位 原来的字为 0000 0010 0100 0001(0241H)TF已经是0了把IF置0即可 PSW= 0000 0000 0100 0001 (0041H) 别的位不用管
然后保护断点,把CS:IP 依次压入堆栈保护 SP指针=17FE-4=17FAH 中断类型码 7, 通过7*4算出中断服务 程序的入口地址 0000 0111 (7) 左移2位 0001 1100 (1CH)。 此处为偏移地址, 知道中断向量表的地址为0000:0000H- 0000:03FFH 物理地址 =段*16+ip= 00000H+1CH=0001CH. 所以IP= 2010H CS=4030H (高高低低原则) (2) 此时堆栈中的情况 1:17FAH 2:17FFH 其余的内容对应填上即可 |
CopyRight 2018-2019 实验室设备网 版权所有 |