简单的分配
这是我的问题。我定义了以下结构
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。
如果有任何帮助,我将非常感激。
Here's my problem. I have the following structure defined
struct idt_reg{
unsigned short limit;
unsigned int base;
}__attribute__((packed));
In my code I do the following assignment
unsigned short num_ids = idtr.limit >> 3;
Now upon execution, when the value stored in idtr.limit
is equal to 2047(0x7FF), what I expected to happen was a right shift of 3 bits (divide by 8) and get the value of 255 written to num_ids. Instead the value of num_ids
is always 0.
Any help I would really appreciate.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这:
打印 255。
This:
prints 255.