读书人

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

发布时间: 2012-02-28 13:06:35 作者: rapoo

获取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的中断描述表那么好弄的?

读书人网 >汇编语言

热点推荐