0
这是我的问题。我有以下的结构定义简单任务
struct idt_reg{
unsigned short limit;
unsigned int base;
}__attribute__((packed));
在我的代码我做了以下分配
unsigned short num_ids = idtr.limit >> 3;
现在在执行时,当存储在idtr.limit
的值等于2047(0x7FF),我预计发生的是3位右移(除以8)并将值255写入num_ids。相反num_ids
的值始终是0.
任何帮助,我真的很感激。
“我的预期发生了(除以8)的3个字节右移” 不,3 __bits__右移。 – orlp 2011-06-07 07:05:12
如果右移3,它将是255(0xFF)。 ;) – 2011-06-07 07:06:18
所以你可以展示一个更完整的代码片段。你如何设置'idtr',你如何确定'num_ids'是'0'。你打印了吗?在调试器中看到它?等 – 2011-06-07 07:08:51