当前位置: 代码迷 >> 汇编语言 >> 获取80号中断的中断描述符信息 出错解决方案
  详细解决方案

获取80号中断的中断描述符信息 出错解决方案

热度:7585   发布时间:2013-02-26 00:00:00.0
获取80号中断的中断描述符信息 出错
一、为了得到中断描述符的信息 我这样写
C/C++ code
unsigned char idtr[6] = {0};asm ( 37                 "sidt %0" 39                 :"=m"(idtr) 41                 );

打印出来的结果是 idt base 0xff21bc60 limit 0x7ff 
请高手分析一下结果是对的还是错的?

二、然后为了得到系统调用,即80号中断的中断描述符的信息 
C/C++ code
struct idt 16 { 17         unsigned short offset_low; 18         unsigned short sel; 19         unsigned char none,flags; 20         unsigned short offset_high; 21 }__attribute__ ((packed));struct idt idt;idt = (struct idt *)(*(unsigned int *)&idtr[2] + 8 * 0x80);

得到了80号中断的中断描述符信息,我打印idt的信息,就出错了,直接crash了
貌似idt的信息是错的 但是我不知道这样做哪儿错了?
请高手指点一下


------解决方案--------------------------------------------------------
探讨
得到了80号中断的中断描述符信息,我打印idt的信息,就出错了,直接crash了

------解决方案--------------------------------------------------------
你以为linux的中断描述表那么好弄的?
  相关解决方案