摘要: 中断或异常发生之前当 CPU 执行了当前指令之后,CS 和 EIP 这对寄存器中所包含的内容就是下一条将要执行 指令的逻辑地址。在对下一条指令执行前,CPU 先要判断在执行当前指令的过程中是否发生 了中断或异常。如果发生了一个中断或异常那么 CPU 将做以下事情• 确定所发生中断或异常的向量i(在 ... 阅读全文
posted @ 2015-10-22 23:57 幻暝玄冰 阅读(1815) 评论(3) 推荐(1) 编辑
摘要: Intel x86共有256种异常或者中断,也就是常说的中断向量,分别有对应的中断类型码,分布如下0-31异常和非屏蔽中断32-47由I/O设备引起的屏蔽中断,书中所讲为8259A单片机来处理响应34号中断外的其他中断48-255标识软中断,linux系统只使用了128号即0x80来实现系统内调用,... 阅读全文
posted @ 2015-10-22 20:49 幻暝玄冰 阅读(567) 评论(0) 推荐(0) 编辑
摘要: 之前百度面试的时候被volatile虐了,内核中很多地方也会用到,这个面试的时候出现概率太大了,所以搜集了一些结果供大家参考,大部分是百度到的,说得挺明确的,以后读代码的时候遇到了再更新。百度知道有人提如下问题:#include "stdio.h"int main(void){ const c... 阅读全文
posted @ 2015-10-22 16:25 幻暝玄冰 阅读(1696) 评论(0) 推荐(0) 编辑
摘要: 之前百度面试的时候被volatile虐了,内核中很多地方也会用到,这个面试的时候出现概率太大了,所以搜集了一些结果供大家参考,大部分是百度到的,说得挺明确的,以后读代码的时候遇到了再更新。百度知道有人提如下问题:#include "stdio.h"int main(void){ const c... 阅读全文
posted @ 2015-10-22 16:17 幻暝玄冰 阅读(90) 评论(0) 推荐(0) 编辑
摘要: static inline int strcmp(const char * cs,const char * ct) { int d0, d1; register int __res; __asm__ __volatile__( "1:\tlodsb\n\t" "scasb... 阅读全文
posted @ 2015-10-22 16:00 幻暝玄冰 阅读(2712) 评论(0) 推荐(0) 编辑