通过中断类型码求中断入口地址 |
您所在的位置:网站首页 › 微机int指令 › 通过中断类型码求中断入口地址 |
目录 中断向量表 如何解题 例题(完整的题直接练练吧) 1: 2: 3: 4: 中断向量表存放中断地址的一段内存空间称为中断向量表 存放各类中断的中断服务程序的入口地址 表的地址位于内存的0000:0000到0000:03FFH(即0段的0000到03FFH) 大小1KB,共256个入口 每个入口占用4个单元,一次为CS:IP ,低字节为段内偏移地址,高字节为段基址 中断类型码 乘 4=中断向量表对应地址 如何解题这种题其实很简单。不是×4就是除4,分清楚就行了 题目要求一般为给你中断类型码,一段向量表中的存储情况,问你中断服务程序的真正入口地址 假设中断类型码16H,求中断程序入口地址? 16H 是 000010110 给他左移2位就是乘4 01011000 (58H) 然后去 58H,59H,60H,61H中取数据
假设它们中的数据分别是 58H 里面的内容是 11H 59 H里面的内容是 22H 60H 里面的内容是 33H 61H 里面的内容是 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段,所以偏移地址就等于物理地址 段地址填入 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) |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |