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