获取80号中断的中断描述符信息 出错解决方案
获取80号中断的中断描述符信息 出错一、为了得到中断描述符的信息 我这样写C/C++ codeunsigned char idtr[6
获取80号中断的中断描述符信息 出错
一、为了得到中断描述符的信息 我这样写
C/C++ codeunsigned char idtr[6] = {0};asm ( 37 "sidt %0" 39 :"=m"(idtr) 41 );
打印出来的结果是 idt base 0xff21bc60 limit 0x7ff
请高手分析一下结果是对的还是错的?
二、然后为了得到系统调用,即80号中断的中断描述符的信息
C/C++ codestruct 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的信息是错的 但是我不知道这样做哪儿错了?
请高手指点一下
[解决办法][解决办法]你以为linux的中断描述表那么好弄的?