x86汇编与逆向工程:软件破解与防护的艺术
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.3.2 位、字节和字

位(bit)是计算机使用的基本单位。但是,位太小,提供的应用空间有限。因此,计算机并不操作和处理单一的位,而是将字节(byte)作为最小的内存单元来运作。在所有现代系统中,一个字节由8位组成。

尽管字节比位大,但它们对于很多操作来说仍然太小。计算机被设计为一次最佳地访问某一确定数量的字节。这个数量的字节被称为字(word),通常是2的幂,并且在不同的计算机之间可能会有所不同。例如,微控制器的字比较小,通常使用包含1个或2个字节(8位或16位)的字。通用计算机的字通常为4个或8个字节(32位或64位)。

图2.2 Windows计算器中的进制转换

位、字节和字是处理内存时最重要的术语,但并非唯一的。以下是一些常用术语:

• 位:取0或1。

• 字节:8位。

• 半字节(nibble):4位。

• 双字节:16位。

• 四字节(quad-byte):32位。

• 字:取决于架构,一定数量的字节。

• 半字(halfword):一半的字。

• 双字(doubleword,简称DWORD):两个字。

• 四字(quadword,简称QWORD):包含四个字的单位。

• 八字(octoword)、双四字(double quadword,简称DQWORD):由八个字组成。

本书主要研究32位架构。在传统的32位架构中,一个字是32位。但这是x86架构的一个独特之处。由于x86保持了与原始16位架构的向后兼容性,因此在x86架构中,一个字是16位,而一个双字则是32位。

提示:在32位x86架构中,一个字节是8位,一个双字是32位。