
软件 X86
文章平均质量分 72
admiral_j
这个作者很懒,什么都没留下…
展开
-
SFENCE、LFENCE、MFENCE指令
SFENCE、LFENCE、MFENCE指令 当系统在做Memory IO操作的时候,用Index和Data间接方式访问寄存器(比如APIC 寄存器),这个时候需要加入写延时,否则,数据就会错位,因为系统硬件做流水操作,导致程序不能严格的顺序执行。而以前的延时值都是自己在实际中进行测试,选择一个比较合适的值,比较笨的方法!后来同事发现了mfence这个指令,可以正好使用在这个原创 2012-10-15 14:06:35 · 19322 阅读 · 0 评论 -
关于C语言中+和|的区别
关于C语言中+和|的区别 当我们在coding的时候,使用两个变量相加的情况,或者用 +,或者用 | ,都是没有问题,比如: 0x1000 + 0x55 = 0x1055 0x1000 | 0x55 = 0x1055 介于以前这种固有的思维,因此没有把其中不同仔细考虑,直到这几天的bug,才恍然大悟,还是因为基础知识的不扎实和习惯性的思维导致这个b转载 2012-10-15 14:10:12 · 1290 阅读 · 1 评论 -
64-bit EFI与SMM
64-bit EFI与SMM 如果EFI支持64-bit的话,那么就可以启动Windows 7, 还不是因为MS不好好支持32-bit,这样就不需要CSM module了 那么如果EFI支持64-bit的话,SMM driver也就变成64-bit了,这个时候SMM就必须从Real mode 转成64-bit protect mode,其实主要的问题就是CP转载 2012-10-15 14:18:29 · 682 阅读 · 0 评论