Archive

Archive for July, 2009

KWinUI:半透明窗口

July 5th, 2009 proguru No comments

KWinUI很轻松的就可以让我们拥有一个半透明窗口。
先贴代码
Read more…

Categories: KWinUI Tags:

ubuntu:解决非官方源导致的GPG error

July 5th, 2009 proguru No comments

当我们在/etc/apt/sources.list中加入非官方源来安装、更新部分软件时,sudo apt-get update会有错误提示
下面以我使用的ibus非官方源作为示例,错误提示如下:
W: GPG error: http://ppa.launchpad.net jaunty Release: The following signatures couldn’t be verified because the public key is not available: NO_PUBKEY 21C022AA985E0E11
W: You may want to run apt-get update to correct these problems
也就是这个非官方源是不可信任的,解决办法是导入该源的公钥。
Read more…

Categories: GNU/Linux Tags:

PC BIOS代码和数据分布示意图(PC BIOS Code and Data Layout)

July 4th, 2009 proguru No comments

本图示意了实模式下PC BIOS代码和数据在内存中的映射位置。请注意,保护模式下可能与此不同,映射到了高端内存位置,具体不详。
bios

pdf格式文件bios.pdf,OpenOfficeOrg源文件bios.odg

Categories: Misc Tags:

条件跳转指令Jcc(Jump condition code)

July 3rd, 2009 proguru No comments

关于条件跳转指令,特别是用于有符号数比较的Jcc指令,网上的文章多有讹误,这次彻底的厘清一下,以备忘。

在介绍条件跳转指令之前,介绍一下EFLAGS寄存器中的状态标志(Status Flag)是有必要的,Jcc中的cc(condition code)即表示需要测试的状态标志或状态标志组合。EFLAGS寄存器的低16位在8086时代叫做FLAGS寄存器,又称作程序状态字PSW(Program Status Word)。
Read more…

Categories: Misc Tags:

负数补码(two’s complement)的原理及证明

July 1st, 2009 proguru No comments

在本文里面,com指代complement, neg指代negative,并且本文涉及的是”2的补码”(two’s complement)而不是”1的补码”(one’s complement)

学过计算机的大部分人都知道负数在计算机内部是用补码表示的,但是大部分的教材和文章里面都只是简单的告诉你负数的补码等于其反码加一云云,至于为什么是这样,则基本上都语焉不详。

负数用补码表示的好处就是减法可以转化为加法,简化硬件设计,CPU只用一个加法器就可以进行加减法运算了。

下面我就尝试着来证明一下,为什么负数的补码等于反码加一。
理解下面的推导要求读者必须了解模数的概念和求模运算。
Read more…

Categories: Misc Tags:

Copyleft © 2009-2010 Proguru 本站为原创网站,除非另有声明,本网站采用知识共享“署名2.5 中国大陆”许可协议授权.