摘要: 位操作 status |=  flags  /*设置标记*/ status &= ~flags /*清除标记*/ status & flags    /*判断标记*/   循环: do {} while(0) 方便从代码中退出( break; 不需要使用 goto) for(;;)  死循环; &... 阅读全文
posted @ 2010-01-14 15:16 napoleon_liu 阅读(344) 评论(1) 推荐(0) 编辑
摘要: x86 有 tr 寄存器,用来索引tss结构,tr 索引的是 GDT中的表项,描述符的类型必须是TSS。 tr寄存器,发生陷入时CPU就是从通过这个指针指向的TSS中拿到SS和ESP的值。   在linux中,每一个CPU对应一个TSS(而不是每个进程对应一个TSS),在同一个CPU上运行的进程共用一个TSS,由于每个进程的内核栈都不同(SS相同,但是ESP 不同),在某个CPU上正在... 阅读全文
posted @ 2010-01-14 14:53 napoleon_liu 阅读(1380) 评论(0) 推荐(0) 编辑
摘要: x86 实模式下,使用中断向量表(地址为0-1k的部分,每个向量4个字节); x86 保护模式下,使用中断描述符表 IDT. CPU中有 idtr 寄存器,保存 idt 表的位置, lidt 指令用于加载 idt 表到 idtr中。 idt 表中的 表项 是 8个字节, 一部分用户是段选择符,一部分是段内偏移量,还有中断DPL, 以及门类型(中断,陷阱,系统调用).   在一个... 阅读全文
posted @ 2010-01-14 11:32 napoleon_liu 阅读(375) 评论(0) 推荐(0) 编辑